メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

AWS SDK for .NET を使用した 1 つのオブジェクトの削除

バケットから 1 つのオブジェクトを削除できます。バケットに対してバージョニングを有効にしている場合は、特定のバージョンのオブジェクトを削除することもできます。

以下のタスクは、.NET のクラスを使用して 1 つのオブジェクトを削除する手順を示しています。

オブジェクトの削除(バージョニング非対応のバケット)

1

AWS 認証情報を指定して、AmazonS3Client クラスのインスタンスを作成します。

2

AmazonS3.DeleteObject メソッドを実行します。このとき、DeleteObjectRequest のインスタンスにバケット名とオブジェクトキーを指定します。

バケットに対してバージョニングを有効にしていない場合は、オペレーションでオブジェクトが削除されます。バージョニングを有効にしている場合は、オペレーションで削除マーカーが追加されます。詳細については、「1 件のリクエストで 1 つのオブジェクトを削除」を参照してください。

以下の C# コード例は、前述のステップの例です。

Copy
static IAmazonS3 client; client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1); DeleteObjectRequest deleteObjectRequest = new DeleteObjectRequest { BucketName = bucketName, Key = keyName }; using (client = Amazon.AWSClientFactory.CreateAmazonS3Client( accessKeyID, secretAccessKeyID)) { client.DeleteObject(deleteObjectRequest); }

特定のバージョンのオブジェクトの削除(バージョニング対応のバケット)

1

AWS 認証情報を指定して、AmazonS3Client クラスのインスタンスを作成します。

2

AmazonS3.DeleteObject メソッドを実行します。このとき、DeleteObjectRequest のインスタンスにバケット名、オブジェクトキー名、オブジェクトのバージョン ID を指定します。

DeleteObject メソッドは特定のバージョンのオブジェクトを削除します。

以下の C# コード例は、前述のステップの例です。

Copy
IAmazonS3 client client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1) DeleteObjectRequest deleteObjectRequest = new DeleteObjectRequest { BucketName = bucketName, Key = keyName, VersionId = versionID }; using (client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1)) { client.DeleteObject(deleteObjectRequest); Console.WriteLine("Deleting an object"); }

例 1: オブジェクトの削除(バージョニング非対応のバケット)

次の C# コード例では、バケットからオブジェクトを削除します。削除リクエストにバージョン ID は指定していません。バケットに対してバージョニングを有効にしていない場合、Amazon S3 はオブジェクトを削除します。バージョニングを有効にしている場合、Amazon S3 は削除マーカーを追加し、オブジェクトは削除されません。作業サンプルを作成およびテストする方法については、「Amazon S3 .NET コード例の実行」を参照してください。

Copy
using System; using Amazon.S3; using Amazon.S3.Model; namespace s3.amazon.com.docsamples { class DeleteObjectNonVersionedBucket { static string bucketName = "*** Provide a bucket name ***"; static string keyName = "*** Provide a key name ****"; static IAmazonS3 client; public static void Main(string[] args) { using (client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1)) { DeleteObjectRequest deleteObjectRequest = new DeleteObjectRequest { BucketName = bucketName, Key = keyName }; try { client.DeleteObject(deleteObjectRequest); Console.WriteLine("Deleting an object"); } catch (AmazonS3Exception s3Exception) { Console.WriteLine(s3Exception.Message, s3Exception.InnerException); } } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } } }

例 2: (バージョニング対応のバケットからの)オブジェクトの削除

次の C# コード例では、バージョニングされたバケットからオブジェクトを削除します。DeleteObjectRequest インスタンスはオブジェクトのキー名とバージョン ID を指定します。DeleteObject メソッドは特定のバージョンのオブジェクトをバケットから削除します。

サンプルをテストするには、バケット名を指定する必要があります。このコード例は以下のタスクを実行します。

  1. バケットに対してバージョニングを有効にします。

  2. サンプルオブジェクトをバケットに追加します。レスポンスとして、Amazon S3 は新しく追加されたオブジェクトのバージョン ID を返します。また、ListVersions リクエストを送信することでも、オブジェクトのバージョン ID を取得できます。

    Copy
    var listResponse = client.ListVersions(new ListVersionsRequest { BucketName = bucketName, Prefix = keyName });
  3. DeleteObject メソッドを使用してサンプルオブジェクトを削除します。DeleteObjectRequest クラスは、オブジェクトキー名とバージョン ID の両方を指定します。

作業サンプルを作成およびテストする方法については、「Amazon S3 .NET コード例の実行」を参照してください。

Copy
using System; using Amazon.S3; using Amazon.S3.Model; namespace s3.amazon.com.docsamples { class DeleteObjectVersion { static string bucketName = "*** Provide a Bucket Name ***"; static string keyName = "*** Provide a Key Name ***"; static IAmazonS3 client; public static void Main(string[] args) { using (client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1)) { try { // Make the bucket version-enabled. EnableVersioningOnBucket(bucketName); // Add a sample object. string versionID = PutAnObject(keyName); // Delete the object by specifying an object key and a version ID. DeleteObjectRequest request = new DeleteObjectRequest { BucketName = bucketName, Key = keyName, VersionId = versionID }; Console.WriteLine("Deleting an object"); client.DeleteObject(request); } catch (AmazonS3Exception s3Exception) { Console.WriteLine(s3Exception.Message, s3Exception.InnerException); } } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } static void EnableVersioningOnBucket(string bucketName) { PutBucketVersioningRequest setBucketVersioningRequest = new PutBucketVersioningRequest { BucketName = bucketName, VersioningConfig = new S3BucketVersioningConfig { Status = VersionStatus.Enabled } }; client.PutBucketVersioning(setBucketVersioningRequest); } static string PutAnObject(string objectKey) { PutObjectRequest request = new PutObjectRequest { BucketName = bucketName, Key = objectKey, ContentBody = "This is the content body!" }; PutObjectResponse response = client.PutObject(request); return response.VersionId; } } }