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

.NET용 AWS SDK를 사용하여 아카이브된 객체 복원

다음 작업은 .NET용 AWS SDK를 사용하여 아카이브된 객체 복원을 시작하도록 안내합니다.

객체 다운로드

1

AmazonS3 클래스의 인스턴스를 만듭니다.

2

버킷 이름, 복원 및 객체 사본이 복원된 일수에 대한 객체 키를 제공하여 RestoreObjectRequest 클래스의 인스턴스를 만듭니다.

3

AmazonS3.RestoreObject 메서드 중 하나를 실행하여 아카이브 복원을 시작합니다.

다음은 위에서 설명한 작업을 실행하는 C# 코드 예제입니다.

Copy
IAmazonS3 client; string bucketName = "examplebucket"; string objectKey = "examplekey"; client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1); RestoreObjectRequest restoreRequest = new RestoreObjectRequest() { BucketName = bucketName, Key = objectKey, Days = 2 }; client.RestoreObject(restoreRequest);

Amazon S3는 객체 메타데이터에 복원 상태를 유지합니다. 객체 메타데이터를 검색하고 다음 C# 코드 조각에서 나타난 RestoreInProgress 속성 값을 확인할 수 있습니다.

Copy
IAmazonS3 client; string bucketName = "examplebucket"; string objectKey = "examplekey"; client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1); GetObjectMetadataRequest metadataRequest = new GetObjectMetadataRequest() { BucketName = bucketName, Key = objectKey }; GetObjectMetadataResponse response = client.GetObjectMetadata(metadataRequest); Console.WriteLine("Restoration status: {0}", response.RestoreInProgress); if (response.RestoreInProgress == false) Console.WriteLine("Restored object copy expires on: {0}", response.RestoreExpiration);

다음 C# 코드 예제는 아카이브된 지정 객체에 대한 복원 요청을 시작합니다. 코드를 업데이트하고 버킷 이름과 아카이브된 객체 키 이름을 제공해야 합니다. 실제 예제를 작성하여 테스트하는 방법에 대한 자세한 내용은 Amazon S3 .NET 코드 예시 실행를 참조하십시오.

Copy
using System; using Amazon.S3; using Amazon.S3.Model; namespace s3.amazon.com.docsamples { class RestoreArchivedObject { static string bucketName = "*** provide bucket name ***"; static string objectKey = "*** archived object keyname ***"; static IAmazonS3 client; public static void Main(string[] args) { try { using (client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1)) { RestoreObject(client, bucketName, objectKey); CheckRestorationStatus(client, bucketName, objectKey); } Console.WriteLine("Example complete. To continue, click Enter..."); Console.ReadKey(); } catch (AmazonS3Exception amazonS3Exception) { Console.WriteLine("S3 error occurred. Exception: " + amazonS3Exception.ToString()); } catch (Exception e) { Console.WriteLine("Exception: " + e.ToString()); } } static void RestoreObject(IAmazonS3 client, string bucketName, string objectKey) { RestoreObjectRequest restoreRequest = new RestoreObjectRequest { BucketName = bucketName, Key = objectKey, Days = 2 }; RestoreObjectResponse response = client.RestoreObject(restoreRequest); } static void CheckRestorationStatus(IAmazonS3 client, string bucketName, string objectKey) { GetObjectMetadataRequest metadataRequest = new GetObjectMetadataRequest { BucketName = bucketName, Key = objectKey }; GetObjectMetadataResponse response = client.GetObjectMetadata(metadataRequest); Console.WriteLine("Restoration status: {0}", response.RestoreInProgress); if (response.RestoreInProgress == false) Console.WriteLine("Restored object copy expires on: {0}", response.RestoreExpiration); } } }