OSS允许您对Object设置访问权限,方便您控制资源访问的方式。

更多关于访问权限控制的内容请参考访问控制

对于Object,有四种访问权限:
  • default:继承所属的Bucket的访问权限,即与所属Bucket的访问权限一样。
  • public-read-write:允许匿名用户读写该Object。
  • public-read:允许匿名用户读该Object。
  • private:不允许匿名访问,所有的访问都要经过签名。

创建Object时,默认为继承Bucket权限。之后您可以通过putACL来设置Object的其他访问权限。

let OSS = require('ali-oss')

let client = new OSS({
  region: '<Your region>'
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>',
  bucket: '<Your bucket name>'
});

async function getACL () {
  try {
    let result = await client.getACL('my-object');
    console.log(result.acl); // default

    await client.putACL('my-object', 'public-read');
    let result = await client.getACL('my-object');
    console.log(result.acl); // public-read
  } catch (e) {
    console.log(e);
  }
}

getACL();
		
注意
  • 如果没有设置Object的权限,即Object的ACL为继承Bucket,此时Object的权限和Bucket权限一致。
  • 如果Object的权限为继承Bucket以外的三种权限时,访问该Object进行权限认证时会优先判断Object的权限,此时Bucket的权限设置会被忽略。
  • 允许匿名访问时(即设置了public-read或者public-read-write权限),则可以直接通过浏览器访问,例如http://bucket-name.oss-cn-hangzhou.aliyuncs.com/object.jpg