开发者社区> 问答> 正文

ruby sdk设置Bucket的访问权限

已解决

展开
收起
2017-12-12 20:28:56 726 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

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

    管理存储空间

    存储空间(Bucket)是OSS上的命名空间,也是计费、权限控制、日志记录等高级功能的管理实体。

    查看所有Bucket

    使用Client#list_buckets接口列出当前用户下的所有Bucket,用户还可以指定:prefix参数,列出Bucket名字为特定前缀的所有Bucket:

    1. require 'aliyun/oss'
    2. client = Aliyun::OSS::Client.new(
    3. endpoint: 'endpoint',
    4. access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')
    5. buckets = client.list_buckets
    6. buckets.each { |b| puts b.name }
    7. buckets = client.list_buckets(:prefix => 'my-')
    8. buckets.each { |b| puts b.name }

    创建Bucket

    使用Client#create_bucket接口创建一个Bucket,用户需要指定Bucket的名字:

    1. require 'aliyun/oss'
    2. client = Aliyun::OSS::Client.new(
    3. endpoint: 'endpoint',
    4. access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')
    5. client.create_bucket('my-bucket')

    注意:

    • Bucket的命名规范请查看OSS 基本概念
    • 由于存储空间的名字是全局唯一的,所以必须保证您的Bucket名字不与别人的重复。

    删除Bucket

    使用Client#delete_bucket接口删除一个Bucket,用户需要指定Bucket的名字:

    1. require 'aliyun/oss'
    2. client = Aliyun::OSS::Client.new(
    3. endpoint: 'endpoint',
    4. access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')
    5. client.delete_bucket('my-bucket')

    注意:

    • 如果该Bucket下还有文件存在,则需要先删除所有文件才能删除Bucket
    • 如果该Bucket下还有未完成的上传请求,则需要通过list_uploadsabort_upload先取消那些请求才能删除Bucket。用法请参考API文档

    查看Bucket是否存在

    用户可以通过Client#bucket_exists?接口查看当前用户的某个Bucket是否存在:

    1. require 'aliyun/oss'
    2. client = Aliyun::OSS::Client.new(
    3. endpoint: 'endpoint',
    4. access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')
    5. puts client.bucket_exists?('my-bucket')

    Bucket访问权限

    用户可以设置Bucket的访问权限,允许或者禁止匿名用户对其内容进行读写。更多关于访问权限的内容请参考访问权限

    获取Bucket的访问权限(ACL)

    通过Bucket#acl查看Bucket的ACL:

    1. require 'aliyun/oss'
    2. client = Aliyun::OSS::Client.new(
    3. endpoint: 'endpoint',
    4. access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')
    5. bucket = client.get_bucket('my-bucket')
    6. puts bucket.acl

    设置Bucket的访问权限(ACL)

    通过Bucket#acl=设置Bucket的ACL:

    1. require 'aliyun/oss'
    2. client = Aliyun::OSS::Client.new(
    3. endpoint: 'endpoint',
    4. access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')
    5. bucket = client.get_bucket('my-bucket')
    6. bucket.acl = Aliyun::OSS::ACL::PUBLIC_READ
    7. puts bucket.acl
    2017-12-13 18:47:53
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
从 SDK 到编解码:视频直播架构解析 立即下载
跨平台的云服务SDK需要什么 立即下载
一个跨平台的云服务SDK需要什么 立即下载

相关实验场景

更多