本文介绍如何在受版本控制的存储空间(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',
  // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
  accessKeyId: 'yourAccessKeyId',
  accessKeySecret: 'yourAccessKeySecret',
  // 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 = 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',
  // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
  accessKeyId: 'yourAccessKeyId',
  accessKeySecret: 'yourAccessKeySecret',
  // yourbucketname填写存储空间名称。
  bucket: 'yourbucketname'
});

async function getACL() {
  // yourobjectName填写Object的完整路径。Object完整路径中不能包含Bucket名称。
  const name = 'yourobjectName'
  const versionId = 'your versionId' //查看此次执行获取访问权限操作的object的versionId。
  const options = {
    versionId
  };
  const result = client.getACL(name, options);
  console.log(result);
}

getACL();

相关文档

  • 关于设置文件访问权限的API接口说明,请参见PutObjectACL
  • 关于获取文件访问权限的API接口说明,请参见GetObjectACL