edit-icon download-icon

バケットの管理

最終更新日: Nov 15, 2017

バケットはOSS上の名前空間であり、課金、アクセス制御、ロギングおよびその他の高度な機能の管理エンティティです。

すべてのバケットを表示する

現在のユーザーのすべてのバケットを一覧表示するために Client#list_buckets インターフェースが使用されます。

  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 }

バケットを作成する

次のコードは Client#create_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')

注意:

  • バケット命名規則については、 OSS の概要を参照してください。
  • バケットの名前がグローバルに一意であるため、バケット名が他のユーザーのバケット名と異なることを確認する必要があります。

バケットを削除する

次のコードは Client#delete_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')

注意:

  • 削除するバケットにオブジェクトが含まれている場合は、最初にオブジェクトを削除する必要があります。
  • バケットに不完全なアップロードリクエストがある場合は、 list_uploadsabort_upload を使用してバケットを削除する前にリクエストをキャンセルします。 使用方法については、 API Documentationを参照してください。

バケットが存在するかどうかを確認する

次のコードは Client#bucket_exists インターフェースを使用して、現在のユーザーの指定されたバケットが存在するかどうかを確認します。

  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')

バケットアクセス許可

バケットのACLポリシーを設定して、バケットへの匿名読み取り/書き込みを許可または禁止することができます。ACLの詳細については、Resource Access Management (RAM)を参照してください。

バケットの ACL を取得する

次のコードはBucket#aclを使用してバケットの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

バケットのACLポリシーを設定する

次のコードは Bucket#acl=を使用してバケットの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