edit-icon download-icon

バケット管理

最終更新日: Aug 17, 2018

バケットとは、課金、アクセス制御、ロギング、およびその他の高度な機能のための OSS および管理エンティティのネームスペースです。

全てのバケットの照会

oss2.BucketIterator を使用すると、全てのバケットをトラバースできます。

  1. # -*- coding: utf-8 -*-
  2. import oss2
  3. auth = oss2.Auth ('Your AccessKeyID', 'Your AccessKeySecret')
  4. service = oss2.Service(auth, 'Your endpoint')
  5. print([b.name for b in oss2.BucketIterator(service)])

具体的には、oss2.Service は、「OSS サービス」関連のクラスにアクセスするために使用されます。現在のところ、ユーザーのバケットの一覧表示にのみに使用されます。

バケットの作成

指定されたリージョンのエンドポイントとバケット名を指定し新しいバケットを作成します。

  1. bucket = oss2.Bucket (auth, 'Your endpoint', 'your bucket name')
  2. bucket.create_bucket()

例えば、http// OSS-CN-beijing.aliyuncs.comをエンドポイントに指定して、北京リージョンのバケットを作成します。

エンドポイント、地域、およびそのマッピング関係および詳細についてはバケットの命名規則、「OSS の基本概念」を参照してください。

バケット作成時にバケット ACL を指定できます。たとえば、次のコードを使用してパブリック読み取りバケットを作成できます。

  1. bucket.create_bucket(oss2.BUCKET_ACL_PUBLIC_READ)

バケットの削除

空のバケットを削除するには、次のコードを使用します。

  1. try:
  2. bucket.delete_bucket()
  3. except oss2.exceptions.BucketNotEmpty:
  4. print('bucket is not empty.')
  5. except oss2.exceptions.NoSuchBucket:
  6. print('bucket does not exist')

バケットを削除する場合(オブジェクト内のまたは一部空でないバケットアップロードされている)、 バケット削除、及び SDK は BucketNotEmpty 例外をスローすることができません。バケットが存在しない場合は削除され、SDK は NoSuchBucket 例外をスローします。

注意

  • バケットが削除されると、 バケットの名前は他のユーザーによって適用されることがあります。
  • バケット空でない場合は、バケットをクリアすると一覧表示やオブジェクトの中身を削除することができます(いずれかが存在する場合、マルチパートアップロードを終了)その後、バケットを削除します。

バケットのアクセス権限の照会

  1. print(bucket.get_bucket_acl().acl)

バケットのアクセス権限の設定

次のコードは、 バケットアクセス許可を private に設定します。

  1. bucket.put_bucket_acl(oss2.BUCKET_ACL_PRIVATE)