版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
详细解答可以参考官方帮助文档
存储空间(Bucket)是OSS上的命名空间,也是计费、权限控制、日志记录等高级功能的管理实体。
使用Client#list_buckets接口列出当前用户下的所有Bucket,用户还可以指定:prefix参数,列出Bucket名字为特定前缀的所有Bucket:
require 'aliyun/oss'client = Aliyun::OSS::Client.new(endpoint: 'endpoint',access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')buckets = client.list_bucketsbuckets.each { |b| puts b.name }buckets = client.list_buckets(:prefix => 'my-')buckets.each { |b| puts b.name }
使用Client#create_bucket接口创建一个Bucket,用户需要指定Bucket的名字:
require 'aliyun/oss'client = Aliyun::OSS::Client.new(endpoint: 'endpoint',access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')client.create_bucket('my-bucket')
注意:
- Bucket的命名规范请查看OSS 基本概念。
- 由于存储空间的名字是全局唯一的,所以必须保证您的Bucket名字不与别人的重复。
使用Client#delete_bucket接口删除一个Bucket,用户需要指定Bucket的名字:
require 'aliyun/oss'client = Aliyun::OSS::Client.new(endpoint: 'endpoint',access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')client.delete_bucket('my-bucket')
注意:
- 如果该Bucket下还有文件存在,则需要先删除所有文件才能删除Bucket
- 如果该Bucket下还有未完成的上传请求,则需要通过
list_uploads和abort_upload先取消那些请求才能删除Bucket。用法请参考API文档。
用户可以通过Client#bucket_exists?接口查看当前用户的某个Bucket是否存在:
require 'aliyun/oss'client = Aliyun::OSS::Client.new(endpoint: 'endpoint',access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')puts client.bucket_exists?('my-bucket')
用户可以设置Bucket的访问权限,允许或者禁止匿名用户对其内容进行读写。更多关于访问权限的内容请参考访问权限。
通过Bucket#acl查看Bucket的ACL:
require 'aliyun/oss'client = Aliyun::OSS::Client.new(endpoint: 'endpoint',access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')puts bucket.acl
通过Bucket#acl=设置Bucket的ACL:
require 'aliyun/oss'client = Aliyun::OSS::Client.new(endpoint: 'endpoint',access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')bucket.acl = Aliyun::OSS::ACL::PUBLIC_READputs bucket.acl