本文介绍如何在受版本控制的存储空间(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({
bucket: '<Your BucketName>',
//region以杭州为例(oss-cn-hangzhou),其他region按实际情况填写。
region: '<Your Region>',
//阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>'
});
async function putACL() {
const name = '<your objectName>'
const acl = '<your acl>'
const versionId = 'your versionId' // 设置指定versionId的Object的访问权限(ACL)。
const options = {
versionId
};
const result = client.putACL(name, acl, options);
console.log(result);
}
putACL();
设置文件访问权限的详细信息请参见PutObjectACL。
获取文件访问权限
GetObjectACL默认获取Object当前版本的ACL权限。如果Object的当前版本是删除标记(Delete Marker),OSS将返回404 Not Found。请求参数中指定versionId可以获取指定Object版本的ACL权限。
以下代码用于获取文件访问权限:
const OSS = require('ali-oss');
const client = new OSS({
bucket: '<Your BucketName>',
//region以杭州为例(oss-cn-hangzhou),其他region按实际情况填写。
region: '<Your Region>',
//阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>'
});
async function getACL() {
const name = '<your objectName>'
const versionId = 'your versionId' //查看此次执行获取访问权限操作的object的versionId。
const options = {
versionId
};
const result = client.getACL(name, options);
console.log(result);
}
getACL();
获取文件访问权限的详细信息请参见GetObjectACL。