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

AWS SDK for .NET を使用した、アーカイブされたオブジェクトの復元

以下のタスクは、AWS SDK for .NET を使用して、アーカイブされたオブジェクトの復元を開始する手順を示しています。

オブジェクトのダウンロード

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