このトピックでは、Object Storage Service (OSS) Python SDK を使用してバケットに関する情報を取得する方法について説明します。この情報には、アクセス追跡ステータス、リージョン、作成日、アクセス制御リスト (ACL)、オーナーの名前と ID、ストレージタイプ、データ冗長性タイプ、パブリックエンドポイント、内部エンドポイント、クロスリージョンレプリケーションステータス、バージョン管理ステータス、および暗号化方式が含まれます。
注意事項
このトピックのサンプルコードでは、中国 (杭州) リージョン (
cn-hangzhou) を例として使用します。デフォルトではパブリックエンドポイントが使用されます。同一リージョン内の他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部の同一リージョンエンドポイントを使用します。OSS がサポートするリージョンとエンドポイントの詳細については、「OSS のリージョンとエンドポイント」をご参照ください。このトピックの例では、環境変数からアクセス資格情報を使用します。アクセス資格情報の設定方法の詳細については、「アクセス資格情報の設定」をご参照ください。
バケットに関する情報を取得するには、
oss:GetBucketInfo権限が必要です。詳細については、「RAM ユーザーへのカスタムアクセスポリシーの付与」をご参照ください。
メソッド定義
get_bucket_info(request: GetBucketInfoRequest, **kwargs) → GetBucketInfoResultリクエストパラメータ
パラメータ | タイプ | 説明 |
request | GetBucketInfoRequest | リクエストパラメーターを設定します。詳細については、「GetBucketInfoRequest」をご参照ください。 |
戻り値
タイプ | 説明 |
GetBucketInfoResult | 戻り値です。詳細については、「GetBucketInfoResult」をご参照ください。 |
バケット情報を取得するための完全なメソッド定義については、「get_bucket_info」をご参照ください。
サンプルコード
次のコードを使用して、バケットに関する情報を取得します。
import argparse
import alibabacloud_oss_v2 as oss
# コマンドライン引数パーサーを作成します。このスクリプトは、指定されたバケットの詳細情報を取得します。
parser = argparse.ArgumentParser(description="Get detailed information about a specified OSS bucket.")
# --region コマンドライン引数を追加します。この引数は、バケットが配置されているリージョンを指定します。これは必須の引数です。
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
# --bucket コマンドライン引数を追加します。この引数は、バケットの名前を指定します。これは必須の引数です。
parser.add_argument('--bucket', help='The name of the bucket to get information for.', required=True)
# --endpoint コマンドライン引数を追加します。この引数は、他のサービスが OSS にアクセスするために使用できるエンドポイントを指定します。これはオプションの引数です。
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS.')
def main():
"""
main 関数は、コマンドライン引数を解析し、指定されたバケットの詳細情報を取得します。
"""
args = parser.parse_args() # コマンドライン引数を解析します。
# ID 検証のために環境変数から資格情報を読み込みます。
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# SDK のデフォルト設定を使用し、資格情報プロバイダーとリージョンを設定します。
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
cfg.region = args.region
# endpoint 引数が指定されている場合は、設定でエンドポイントを設定します。
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# 指定された設定で OSS クライアントを作成します。
client = oss.Client(cfg)
# 指定されたバケットの詳細情報を取得するリクエストを構築します。
request = oss.GetBucketInfoRequest(bucket=args.bucket)
# リクエストを送信し、レスポンスを取得します。
result = client.get_bucket_info(request)
# レスポンスから情報を出力します。
print(f'status code: {result.status_code},'
f' request id: {result.request_id},'
f' name: {result.bucket_info.name},'
f' access monitor: {result.bucket_info.access_monitor},'
f' location: {result.bucket_info.location},'
f' creation date: {result.bucket_info.creation_date},'
f' extranet endpoint: {result.bucket_info.extranet_endpoint},'
f' intranet endpoint: {result.bucket_info.intranet_endpoint},'
f' acl: {result.bucket_info.acl},'
f' data redundancy type: {result.bucket_info.data_redundancy_type},'
f' owner id: {result.bucket_info.owner.id},'
f' owner display name: {result.bucket_info.owner.display_name},'
f' storage class: {result.bucket_info.storage_class},'
f' resource group id: {result.bucket_info.resource_group_id},'
)
if __name__ == "__main__":
main() # スクリプトのエントリポイント。ファイルが直接実行されると main 関数が呼び出されます。一般的なバケット情報の一覧
パラメータ | 説明 |
BucketInfo.Name | バケット名。 |
BucketInfo.AccessMonitor | バケットのアクセス追跡ステータス。 |
BucketInfo.Location | バケットが配置されているリージョン。 |
BucketInfo.CreationDate | バケットが作成された日付。 |
BucketInfo.ExtranetEndpoint | バケットのパブリックエンドポイント。 |
BucketInfo.IntranetEndpoint | ECS インスタンスがバケットへのアクセスに使用できる内部の同一リージョンエンドポイント。 |
BucketInfo.ACL | バケットのアクセス制御リスト (ACL)。 |
BucketInfo.RedundancyType | バケットのデータ冗長性タイプ。 |
BucketInfo.Owner | 次のパラメーターが含まれます:
|
BucketInfo.StorageClass | バケットのストレージクラス。 |
BucketInfo.SseRule | 次のパラメーターが含まれます:
|
BucketInfo.Versioning | バケットのバージョン管理ステータス。 |
BucketInfo.CrossRegionReplication | バケットのクロスリージョンレプリケーションステータス。 |
関連情報
バケットの詳細については、「バケットの概要」をご参照ください。
バケット情報を取得するための完全なサンプルコードについては、「get_bucket_info.py」をご参照ください。