このトピックでは、OSS SDK for Python を使用してオブジェクトが存在するかどうかを確認する方法について説明します。
注意事項
このトピックのサンプルコードでは、中国 (杭州) リージョンのリージョン ID
cn-hangzhouを使用しています。デフォルトでは、パブリックエンドポイントを使用してバケット内のリソースにアクセスします。バケットが配置されているのと同じリージョン内の他の Alibaba Cloud サービスを使用してバケット内のリソースにアクセスする場合は、内部エンドポイントを使用します。 OSS のリージョンとエンドポイント の詳細については、「OSS のリージョンとエンドポイント」をご参照ください。oss:GetObject権限は、オブジェクトが存在するかどうかを確認するために必要です。詳細については、「RAM ユーザーにカスタムポリシーをアタッチする」をご参照ください。
メソッド
is_object_exist(bucket: str, key: str, version_id: str | None = None, request_payer: str | None = None, **kwargs) → boolリクエストパラメーター
パラメーター | タイプ | 説明 |
bucket | str | バケットの名前。 |
key | str | オブジェクトの名前。 |
version_id | str | オブジェクトのバージョン ID(オプション)。 |
レスポンスパラメーター
タイプ | 説明 |
bool | オブジェクトが存在するかどうかを判断します。 |
このメソッドの詳細については、「is_object_exist」をご参照ください。
サンプルコード
以下は、オブジェクトが存在するかどうかを確認するためのコード例です。
import argparse
import alibabacloud_oss_v2 as oss
# コマンドラインパラメーターパーサーを作成します。
parser = argparse.ArgumentParser(description="指定された OSS バケットにオブジェクトが存在するかどうかを確認します")
# コマンドラインパラメーターを指定します。
parser.add_argument('--region', help='バケットが配置されているリージョン。', required=True)
parser.add_argument('--bucket', help='確認するバケットの名前。', required=True)
parser.add_argument('--endpoint', help='オプション:OSS サービスのエンドポイント URL。指定しない場合は、デフォルトのエンドポイントが使用されます。')
parser.add_argument('--key', help='存在を確認するオブジェクトのキー(または名前)。', required=True)
def main():
# コマンドラインパラメーターを解析します。
args = parser.parse_args()
# 環境変数からアクセス認証情報をロードします。
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# SDK のデフォルト設定を使用し、認証情報プロバイダーを指定します。
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
# 入力に基づいてリージョンパラメーターを更新します。
cfg.region = args.region
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# OSS クライアントインスタンスを作成します。
client = oss.Client(cfg)
# is_object_exist メソッドを呼び出して、指定されたオブジェクトがバケットに存在するかどうかを確認します。
result = client.is_object_exist(
bucket=args.bucket,
key=args.key,
)
# 結果を出力します。
print(f'Object exists: {result}')
# スクリプトのエントリポイント。ファイルが直接実行されると、main 関数が呼び出されます。
if __name__ == "__main__":
main()
参照
オブジェクトが存在するかどうかを確認するために使用される完全なサンプルコードについては、is_object_exist.py をご覧ください。