すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:オブジェクトの削除 (OSS SDK for Python 2.0)

最終更新日:Oct 23, 2025

このトピックでは、OSS SDK for Python 2.0 を使用して単一のオブジェクトまたは複数のオブジェクトを削除する方法について説明します。

使用上の注意

  • このトピックのサンプルコードでは、デフォルトで中国 (杭州) リージョン ID cn-hangzhou とパブリックエンドポイントを使用します。同じリージョン内の他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用します。OSS リージョンとエンドポイント間のマッピングの詳細については、「リージョンとエンドポイント」をご参照ください。

  • オブジェクトを削除するには、oss:DeleteObject 権限が必要です。詳細については、「RAM ユーザーにカスタム権限を付与する」をご参照ください。

メソッド定義

単一オブジェクトの削除

delete_object(request: DeleteObjectRequest, **kwargs) → DeleteObjectResult

複数オブジェクトの削除

delete_multiple_objects(request: DeleteMultipleObjectsRequest, **kwargs) → DeleteMultipleObjectsResult

リクエストパラメーター

パラメーター

タイプ

説明

request

DeleteObjectRequest

オブジェクト名などのリクエストパラメーター。詳細については、「DeleteObjectRequest」をご参照ください。

DeleteMultipleObjectsRequest

削除するオブジェクトのリストなどのリクエストパラメーター。詳細については、「DeleteMultipleObjectsRequest」をご参照ください。

戻り値

タイプ

説明

DeleteObjectResult

戻り値。詳細については、「DeleteObjectResult」をご参照ください。

DeleteMultipleObjectsResult

戻り値。詳細については、「DeleteMultipleObjectsResult」をご参照ください。

  • 単一オブジェクトを削除するメソッドの完全な定義については、「delete_object」をご参照ください。

  • 複数のオブジェクトを削除するメソッドの完全な定義については、「delete_multiple_objects」をご参照ください。

サンプルコード

単一オブジェクトの削除

import argparse
import alibabacloud_oss_v2 as oss

# コマンドライン引数パーサーを作成します。
parser = argparse.ArgumentParser(description="delete object sample")
# バケットが配置されているリージョンを指定する --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.', required=True)
# 他のサービスが OSS にアクセスするために使用できるドメイン名を指定する --endpoint コマンドライン引数を追加します。この引数は必須ではありません。
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
# オブジェクトの名前を指定する --key コマンドライン引数を追加します。この引数は必須です。
parser.add_argument('--key', help='The name of the object.', required=True)

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)

    # オブジェクトを削除するリクエストを実行します。バケット名とオブジェクト名を指定します。
    result = client.delete_object(oss.DeleteObjectRequest(
        bucket=args.bucket,
        key=args.key,
    ))

    # リクエストの状態コード、リクエスト ID、バージョン ID、削除マーカーを出力して、リクエストが成功したかどうかを確認します。
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
          f' version id: {result.version_id},'
          f' delete marker: {result.delete_marker},'
    )

if __name__ == "__main__":
    main()  # スクリプトのエントリポイント。ファイルが直接実行されると、main 関数が呼び出されます。

指定された複数のオブジェクトを削除する

import argparse
import alibabacloud_oss_v2 as oss

# コマンドライン引数パーサーを作成します。
parser = argparse.ArgumentParser(description="delete multiple objects sample")
# バケットが配置されているリージョンを指定する --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.', required=True)
# 他のサービスが OSS にアクセスするために使用できるドメイン名を指定する --endpoint コマンドライン引数を追加します。この引数は必須ではありません。
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
# オブジェクトの名前を指定する --key コマンドライン引数を追加します。この引数は必須です。
parser.add_argument('--key', help='The name of the object.', required=True)
# 注: 複数のオブジェクトを削除する場合は、オブジェクトの名前を指定する --key2 コマンドライン引数を追加します。
parser.add_argument('--key2', help='The name of the object.', required=True)

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)

    # 削除するオブジェクトのリストを定義します。
    # 注: 複数のオブジェクトを削除する場合は、次のフォーマットでオブジェクトリストを展開します。
    objects = [oss.DeleteObject(key=args.key), oss.DeleteObject(key=args.key2)]


    # 複数のオブジェクトを削除するリクエストを実行します。バケット名、エンコーディングタイプ、オブジェクトリストを指定します。
    result = client.delete_multiple_objects(oss.DeleteMultipleObjectsRequest(
        bucket=args.bucket,
        encoding_type='url',
        objects=objects,
    ))

    # リクエストの状態コード、リクエスト ID、削除されたオブジェクトに関する情報を出力して、リクエストが成功したかどうかを確認します。
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
          f' key: {result.deleted_objects[0].key},'
          f' version id: {result.deleted_objects[0].version_id},'
          f' delete marker: {result.deleted_objects[0].delete_marker},'
          f' delete marker version id: {result.deleted_objects[0].delete_marker_version_id},'
          f' encoding type: {result.encoding_type},'
    )


if __name__ == "__main__":
    main() # スクリプトのエントリポイント。ファイルが直接実行されると、main 関数が呼び出されます。

参照

  • 単一オブジェクトを削除するための完全なサンプルコードについては、「delete_object.py」をご参照ください。

  • 複数のオブジェクトを削除するための完全なサンプルコードについては、「delete_multiple_objects.py」をご参照ください。