全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
对象存储 OSS

设置访问权限

更新时间:2017-06-07 13:26:11

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
    import "fmt"
    import "github.com/aliyun/aliyun-oss-go-sdk/oss"

    client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
    if err != nil {
        // HandleError(err)
    }

    // 设置Bucket ACL
    err = client.SetBucketACL("my-bucket", oss.ACLPublicRead)
    if err != nil {
        // HandleError(err)
    }

    // 查看Bucket ACL
    aclRes, err := client.GetBucketACL("my-bucket")
    if err != nil {
        // HandleError(err)
    }
    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
    import "fmt"
    import "github.com/aliyun/aliyun-oss-go-sdk/oss"

    client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
    if err != nil {
        // HandleError(err)
    }

    bucket, err := client.Bucket("my-bucket")
    if err != nil {
        // HandleError(err)
    }

    // 设置Object的访问权限
    err = bucket.SetObjectACL("my-object", oss.ACLPrivate)
    if err != nil {
        // HandleError(err)
    }

    // 查看Object的访问权限
    aclRes, err := bucket.GetObjectACL("my-object")
    if err != nil {
        // HandleError(err)
    }
    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

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

本文导读目录