메뉴
Amazon Simple Storage Service
개발자 안내서 (API Version 2006-03-01)

.NET용 AWS SDK를 사용한 객체 삭제

버킷에서 객체를 삭제할 수 있습니다. 버전 관리를 사용하는 버킷에서는 특정 객체 버전만 삭제할 수도 있습니다.

다음 작업은 .NET 클래스를 사용하여 객체를 삭제하는 방법을 보여줍니다.

객체 삭제(버전이 지정되지 않은 버킷)

1

AWS 자격 증명을 제공하여 AmazonS3Client 클래스의 인스턴스를 만듭니다.

2

AmazonS3.DeleteObject 인스턴스에 버킷 이름과 객체 키를 제공하여 DeleteObjectRequest 메서드를 실행합니다.

버킷에서 버전 관리를 활성화하지 않은 경우 이 작업이 객체를 삭제합니다. 버킷에서 버전 관리를 활성화한 경우 이 작업이 삭제 마커를 추가합니다. 자세한 내용은 요청당 단일 객체 삭제를 참조하십시오.

다음은 앞선 단계에서 설명한 작업을 실행하는 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의 인스턴스에 버킷 이름, 객체 키 이름 및 객체 버전 ID를 제공하여 DeleteObjectRequest 메서드를 실행합니다.

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; } } }