开发者社区> 问答> 正文

Go SDK设置Object访问权限

已解决

展开
收起
2018-03-16 14:25:45 663 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    详细解答可以参考官方帮助文档

    对于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

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

    2018-03-22 07:06:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
跨平台的云服务SDK需要什么 立即下载
RocketMQ Client-GO 介绍 立即下载
一个跨平台的云服务SDK需要什么 立即下载

相关实验场景

更多