このトピックでは、OSS SDK for Python V2 を使用してバケットが配置されているリージョンをクエリする方法について説明します。
注意事項
このトピックのサンプルコードでは、中国 (杭州) リージョンのリージョン ID
cn-hangzhouを使用します。デフォルトでは、パブリックエンドポイントを使用してバケット内のリソースにアクセスします。同じリージョン内の他の Alibaba Cloud サービスからバケット内のリソースにアクセスする場合は、内部エンドポイントを使用します。OSS でサポートされているリージョンとエンドポイントの詳細については、「OSS のリージョンとエンドポイント」をご参照ください。このトピックでは、アクセス資格情報は環境変数から取得されます。アクセス資格情報の設定方法の詳細については、「アクセス資格情報の設定」をご参照ください。
バケットが配置されているリージョンをクエリするには、
oss:GetBucketLocation権限が必要です。詳細については、「RAM ユーザーへのカスタムポリシーの付与」をご参照ください。
メソッド定義
get_bucket_location(request: GetBucketLocationRequest, **kwargs) → GetBucketLocationResultリクエストパラメーター
パラメーター | タイプ | 説明 |
request | GetBucketLocationRequest | リクエストパラメーターを指定します。詳細については、「GetBucketLocationRequest」をご参照ください。 |
戻り値
タイプ | 説明 |
GetBucketLocationResult | 戻り値。詳細については、GetBucketLocationResult をご参照ください。 |
このメソッドの完全な定義の詳細については、「get_bucket_location」をご参照ください。
サンプルコード
次のコードは、バケットが配置されているリージョンをクエリする方法の例を示しています。
import argparse
import alibabacloud_oss_v2 as oss
# コマンドライン引数パーサーを作成します。このスクリプトは、指定されたバケットのロケーション情報を取得するために使用されます。
parser = argparse.ArgumentParser(description="Get the location of 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 the location for.', required=True)
# 他のサービスが OSS にアクセスするために使用できるドメイン名を指定する --endpoint コマンドライン引数を追加します。この引数はオプションです。
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS.')
def 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.GetBucketLocationRequest(bucket=args.bucket)
# リクエストを実行し、応答を取得します。
result = client.get_bucket_location(request)
# 応答のステータスコード、リクエスト ID、およびロケーション情報を出力します。
print(f'status code: {result.status_code},'
f' request id: {result.request_id},'
f' location: {result.location}'
)
if __name__ == "__main__":
main() # スクリプトのエントリポイント。ファイルが直接実行されると、メイン関数が呼び出されます。リファレンス
バケットのリージョンをクエリするための完全なサンプルコードについては、「get_bucket_location.py」をご参照ください。