閱讀93 返回首頁    go 魔獸


設置訪問權限(ACL)__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲

OSS允許用戶對Bucket和Object分別設置訪問權限,方便用戶控製自己的資源可以被如何訪問。對於Bucket,有三種訪問權限:

  • public-read-write 允許匿名用戶向該Bucket中創建/獲取/刪除Object
  • public-read 允許匿名用戶獲取該Bucket中的Object
  • private 不允許匿名訪問,所有的訪問都要經過簽名

創建Bucket時,默認是private權限。之後用戶可以通過putBucketACL來設置Bucket的權限,通過getBucketACL來獲取Bucket的權限。

  1. var co = require('co');
  2. var OSS = require('ali-oss')
  3. var client = new OSS({
  4. region: '<Your region>'
  5. accessKeyId: '<Your AccessKeyId>',
  6. accessKeySecret: '<Your AccessKeySecret>',
  7. bucket: '<Your bucket name>'
  8. });
  9. co(function* () {
  10. var result = yield client.getBucketACL('bucket-name');
  11. console.log(result);
  12. var result = yield client.putBucketACL('bucket-name', 'region', 'acl');
  13. console.log(result);
  14. }).catch(function (err) {
  15. console.log(err);
  16. });

對於Object,有四種訪問權限:

  • default 繼承所屬的Bucket的訪問權限,即與所屬Bucket的權限值一樣
  • public-read-write 允許匿名用戶讀寫該Object
  • public-read 允許匿名用戶讀該Object
  • private 不允許匿名訪問,所有的訪問都要經過簽名

創建Object時,默認為default權限。之後用戶可以通過putACL來設置Object的權限。

  1. var co = require('co');
  2. var OSS = require('ali-oss')
  3. var client = new OSS({
  4. region: '<Your region>'
  5. accessKeyId: '<Your AccessKeyId>',
  6. accessKeySecret: '<Your AccessKeySecret>',
  7. bucket: '<Your bucket name>'
  8. });
  9. co(function* () {
  10. var result = yield client.getACL('my-object');
  11. console.log(result.acl); // default
  12. yield client.putACL('my-object', 'public-read');
  13. var result = yield client.getACL('my-object');
  14. console.log(result.acl); // public-read
  15. }).catch(function (err) {
  16. console.log(err);
  17. });

需要注意的是:

  1. 如果設置了Object的權限(非default),則訪問該Object時進行權限認證時會優先判斷Object的權限,而Bucket的權限設置會被忽略。
  2. 允許匿名訪問時(設置了public-read或者public-read-write權限),用戶可以直接通過瀏覽器訪問,例如:

    1. https://bucket-name.oss-cn-hangzhou.aliyuncs.com/object.jpg

更多關於訪問權限控製的內容請參考 訪問控製

最後更新:2016-11-23 20:05:00

  上一篇:go 使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲
  下一篇:go 管理生命周期__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲