阿里雲團隊努力不懈,力求將最新的技術內容更快地以您最熟悉的語言呈現。本文由簡體中文內容自動轉碼而成,過程無人工干預。阿里雲不保證此自動轉碼的準確性、完整性及時效性。因轉碼造成的任何內容錯誤及因此可能帶來的損失,阿里雲概不負責,敬請見諒。本文内容請以簡體中文版本為準。
全部產品
Search
文件中心

設定存取權限

更新時間: Oct 19, 2018

OSS允許使用者對Bucket和Object分別設定存取權限,方便使用者控制自己的資源可以被如何訪問。對於Bucket,有三種存取權限:

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

建立Bucket時,預設是private許可權。之後使用者可以通過Client.SetBucketACL來設定Bucket的許可權。上面三種許可權分布對應Go SDK中的常量ACLPublicReadWrite、ACLPublicRead、ACLPrivate。

Bucket存取權限

提示:

  • Bucket存取權限設定的範例程式碼在sample/bucket_acl.go
  1. import "fmt"
  2. import "github.com/aliyun/aliyun-oss-go-sdk/oss"
  3. client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
  4. if err != nil {
  5. // HandleError(err)
  6. }
  7. // 設定Bucket ACL
  8. err = client.SetBucketACL("my-bucket", oss.ACLPublicRead)
  9. if err != nil {
  10. // HandleError(err)
  11. }
  12. // 查看Bucket ACL
  13. aclRes, err := client.GetBucketACL("my-bucket")
  14. if err != nil {
  15. // HandleError(err)
  16. }
  17. fmt.Println("Bucket ACL:", aclRes.ACL)

Object存取權限

對於Object,有四種存取權限:

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

建立Object時,預設為default許可權。之後使用者可以通過Bucket.SetObjectACL來設定Object的許可權。上面四種許可權分布對應Go SDK中的常量ACLDefault、ACLPublicReadWrite、ACLPublicRead、ACLPrivate。

提示:

  • Object存取權限設定的範例程式碼在sample/object_acl.go
  1. import "fmt"
  2. import "github.com/aliyun/aliyun-oss-go-sdk/oss"
  3. client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
  4. if err != nil {
  5. // HandleError(err)
  6. }
  7. bucket, err := client.Bucket("my-bucket")
  8. if err != nil {
  9. // HandleError(err)
  10. }
  11. // 設定Object的存取權限
  12. err = bucket.SetObjectACL("my-object", oss.ACLPrivate)
  13. if err != nil {
  14. // HandleError(err)
  15. }
  16. // 查看Object的存取權限
  17. aclRes, err := bucket.GetObjectACL("my-object")
  18. if err != nil {
  19. // HandleError(err)
  20. }
  21. fmt.Println("Object ACL:", aclRes.ACL)

注意:

  • 如果設定了Object的許可權(非default),則訪問該Object時進行許可權認證時 會優先判斷Object的許可權,而Bucket的使用權限設定會被忽略。
  • 允許匿名訪問時(設定了public-read或者public-read-write許可權),使用者可以直接通過瀏覽器訪問,例如 : http://bucket-name.oss-cn-hangzhou.aliyuncs.com/object.jpg

更多關於存取權限控制的內容請參考 存取控制