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

管理Bucket

更新時間: Oct 30, 2018

儲存空間(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