本文介绍如何在受版本控制的存储空间(Bucket)中管理文件(Object)的访问权限(ACL)。
设置文件访问权限
PutObjectACL默认设置Object当前版本的ACL权限。如果Object的当前版本是删除标记(Delete Marker),OSS将返回404 Not Found。请求参数中指定versionId可以设置指定Object版本的ACL权限。
以下代码用于设置文件访问权限:
const OSS = require('ali-oss');
const client = new OSS({
// yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
region: 'yourregion',
// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// yourbucketname填写存储空间名称。
bucket: 'yourbucketname'
});
async function putACL() {
// yourobjectName填写Object的完整路径。Object完整路径中不能包含Bucket名称。
const name = 'yourobjectName'
const acl = 'your acl'
const versionId = 'your versionId' // 设置指定versionId的Object的访问权限(ACL)。
const options = {
versionId
};
const result = await client.putACL(name, acl, options);
console.log(result);
}
putACL();
获取文件访问权限
GetObjectACL默认获取Object当前版本的ACL权限。如果Object的当前版本是删除标记(Delete Marker),OSS将返回404 Not Found。请求参数中指定versionId可以获取指定Object版本的ACL权限。
以下代码用于获取文件访问权限:
const OSS = require('ali-oss');
const client = new OSS({
// yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
region: 'yourregion',
// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// yourbucketname填写存储空间名称。
bucket: 'yourbucketname'
});
async function getACL() {
// yourobjectName填写Object的完整路径。Object完整路径中不能包含Bucket名称。
const name = 'yourobjectName'
const versionId = 'your versionId' //查看此次执行获取访问权限操作的object的versionId。
const options = {
versionId
};
const result = await client.getACL(name, options);
console.log(result);
}
getACL();
相关文档
关于设置文件访问权限的API接口说明,请参见PutObjectACL。
关于获取文件访问权限的API接口说明,请参见GetObjectACL。
文档内容是否对您有帮助?