Wiederherstellen eines archivierten Objekts - Amazon Simple Storage Service

Wiederherstellen eines archivierten Objekts

Ein Zugriff auf in der Speicherklasse S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive gespeicherte Amazon-S3-Objekte ist nicht unmittelbar möglich. Um auf ein Objekt in diesen Speicherklassen zuzugreifen, müssen Sie eine temporäre Kopie davon für eine angegebene Dauer (Anzahl von Tagen) in seinem S3-Bucket wiederherstellen. Informationen zur Verwendung dieser Speicherklassen finden Sie unter Verwenden von Amazon-S3-Speicherklassen und Verwalten Ihres Speicher-Lebenszyklus.

Wiederhergestellte Objekte von S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive werden nur für die von Ihnen angegebene Anzahl von Tagen gespeichert. Wenn Sie eine permanente Kopie des Objekts benötigen, legen Sie eine Kopie davon in Ihrem Amazon S3-Bucket an. Wenn Sie keine Kopie erstellen, wird das Objekt weiterhin in den Speicherklassen S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive gespeichert.

Um das Ablaufdatum zu berechnen, addiert Amazon S3 die Anzahl der angegebenen Tage zu der Zeit, für die Sie die Wiederherstellung des Objekts anfragen, und rundet dann auf den nächsten Tag um Mitternacht UTC. Diese Berechnung wird auf die anfängliche Wiederherstellung des Objekts sowie auf alle von Ihnen angeforderten Verlängerungen der Verfügbarkeit angewendet. Wurde ein Objekt beispielsweise am 15.10.2012 um 10:30 Uhr UTC wiederhergestellt, und Sie haben 3 Tage angegeben, steht das Objekt bis zum 19.10.2012 um 00:00 Uhr UTC zur Verfügung. Ändern Sie am16.10.2012 um 11:00 Uhr UTC die Anzahl der Tage, wie lang es verfügbar sein soll, auf 1, stellt Amazon S3 das wiederhergestellte Objekt bis zum 18.10.2012 um 00:00 Uhr UTC zur Verfügung.

Bei einer Wiederherstellung eines archivierten Objekts zahlen Sie sowohl für das Archiv, als auch für die temporär wiederhergestellte Kopie. Informationen zu Preisen finden Sie unter Amazon S3 – Preise.

Sie können ein archiviertes Objekt mithilfe der Amazon S3-Konsole, der REST-API, den AWS-SDKs und der AWS Command Line Interface (AWS CLI) wiederherstellen.

Verwenden Sie die folgenden Schritte, um ein Objekt wiederherzustellen, das in den Speicherklassen S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive archiviert wurde, um den Status zu überprüfen und eine Wiederherstellung in Bearbeitung zu aktualisieren. (Die Konsole verwendet die Bezeichnungen S3 Glacier Flexible Retrieval und Glacier Deep Archive für diese Speicherklassen.)

So stellen Sie ein archiviertes Objekt wieder her
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon-S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie in der Liste Buckets den Namen des Buckets aus, der die Objekte enthält, die Sie wiederherstellen möchten.

  3. Wählen Sie in der Liste Object (Objekt) das/die Objekt(e) aus, das/die Sie wiederherstellen möchten. Wählen Sie anschließend Actions (Aktionen) und dann Initiate restore (Wiederherstellung initiieren) aus.

  4. Wenn Sie von S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive wiederherstellen, geben Sie im Dialogfeld Initiate restore (Wiederherstellung initiieren) die Anzahl der Tage ein, für die Ihre archivierten Daten verfügbar sein sollen.

  5. Führen Sie unter Retrieval options (Abrufoptionen) einen der folgenden Schritte aus:

    • Wählen Sie Bulk retrieval (Massenabruf) oder Standard retrieval (Standardabruf) und dann Restore (Wiederherstellen) aus.

    • Wählen Sie Expedited retrieval (Expedited-Abruf) (nur für S3 Glacier Flexible Retrieval oder S3 Intelligent Tiering Archive Access verfügbar).

  6. Die bereitgestellte Kapazität steht nur für Objekte in S3 Glacier Flexible Retrieval zur Verfügung. Wenn Sie über bereitgestellte Kapazität verfügen, wählen Sie Restore (Wiederherstellen) aus, um einen bereitgestellten Abruf zu starten.

    Wenn Sie bereitgestellte Durchsatzkapazität gekauft haben, werden alle Ihre Expedited-Abrufe automatisch über Ihre bereitgestellte Kapazität erledigt. Weitere Informationen finden Sie unter Bereitgestellte Kapazität .

    • Wenn Sie nicht über bereitgestellte Kapazität verfügen und auch keine kaufen möchten, wählen Sie Restore (Wiederherstellen) aus.

    • Wenn Sie nicht über bereitgestellte Kapazität verfügen, jedoch kaufen möchten, wählen Sie Add capacity unit (Kapazitätseinheit hinzufügen) und dann Buy (Kaufen) aus. Wenn Sie die Meldung Purchase succeeded (Kauf erfolgreich) erhalten, wählen Sie Restore (Wiederherstellen) aus, um den bereitgestellten Abruf zu starten.

Sie können die Geschwindigkeit einer Wiederherstellung in Bearbeitung upgraden.

So upgraden Sie eine Wiederherstellung in Bearbeitung auf eine schnellere Stufe:
  1. Öffnen Sie die Amazon S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie in der Liste Bucket name (Bucket-Name) den Namen des Buckets aus, der die Objekte enthält, die Sie wiederherstellen möchten.

  3. Wählen Sie in der Liste Objects (Objekte) mindestens eines der Objekte aus, die Sie wiederherstellen wollen. Wählen Sie anschließend Actions (Aktionen) und dann Restore from S3 Glacier Flexible Retrieval wiederherstellen) aus. Informationen zum Überprüfen des Wiederherstellungsstatus eines Objekts finden Sie unter Überprüfung des Wiederherstellungsstatus und des Ablaufdatums.

  4. Wählen Sie die Stufe aus, auf die Sie upgraden möchten, und dann Restore (Wiederherstellen) aus.

    Informationen zum Upgrade auf eine schnellere Wiederherstellungsstufe finden Sie unter Upgraden der Geschwindigkeit einer Wiederherstellung in Bearbeitung.

    Anmerkung

    Standard- und Massenwiederherstellungen für S3 Intelligent-Tiering sind kostenlos. Nachfolgende Wiederherstellungsanforderungen, die für ein Objekt aufgerufen werden, das bereits wiederhergestellt wird, werden jedoch als GET-Anforderung in Rechnung gestellt.

Überprüfung des Wiederherstellungsstatus und des Ablaufdatums

Sie können den Fortschritt der Wiederherstellung auf der Seite Objektübersicht überprüfen. Weitere Informationen finden Sie unter Anzeigen einer Objektübersicht in der Amazon-S3-Konsole . Diese Seite zeigt an, dass die Wiederherstellung in Bearbeitung ist.

Wenn Sie von S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive wiederherstellen, zeigt die temporäre Kopie der Object overview (Objektübersicht) das Restoration expiry date (Ablaufdatum der Wiederherstellung) an. Amazon S3 entfernt die wiederhergestellte Kopie aus Ihrem Archiv an diesem Datum.

Wiederhergestellte Objekte von S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive werden nur für die von Ihnen angegebene Anzahl von Tagen gespeichert. Wenn Sie eine permanente Kopie des Objekts benötigen, legen Sie eine Kopie davon in Ihrem Amazon S3-Bucket an.

Nach der Wiederherstellung eines Objekts können Sie es von der Seite Overview (Übersicht) herunterladen. Weitere Informationen finden Sie unter Anzeigen einer Objektübersicht in der Amazon-S3-Konsole .

Java

Im folgenden Beispiel wird eine Kopie eines Objekts wiederhergestellt, das mit dem AWS SDK for Java archiviert wurde. Das Beispiel initiiert eine Wiederherstellungsanfrage für das angegebene archivierte Objekt und überprüft seinen Wiederherstellungsstatus.

Anweisungen zum Erstellen und Testen eines funktionierenden Beispiels finden Sie unter Testen der Java-Codebeispiele für Amazon S3.

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.ObjectMetadata; import com.amazonaws.services.s3.model.RestoreObjectRequest; import java.io.IOException; public class RestoreArchivedObject { public static void main(String[] args) throws IOException { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; String keyName = "*** Object key ***"; try { AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(clientRegion) .build(); // Create and submit a request to restore an object from Glacier for two days. RestoreObjectRequest requestRestore = new RestoreObjectRequest(bucketName, keyName, 2); s3Client.restoreObjectV2(requestRestore); // Check the restoration status of the object. ObjectMetadata response = s3Client.getObjectMetadata(bucketName, keyName); Boolean restoreFlag = response.getOngoingRestore(); System.out.format("Restoration status: %s.\n", restoreFlag ? "in progress" : "not in progress (finished or failed)"); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }
.NET

Das folgende C#-Beispiel initiiert eine Anfrage, um ein archiviertes Objekt für 2 Tage wiederherzustellen. Amazon S3 verwaltet den Wiederherstellungsstatus in den Objekt-Metadaten. Nachdem die Anfrage initiiert wurde, ruft das Beispiel die Objekt-Metadaten ab und überprüft den Wert der Eigenschaft RestoreInProgress.

Anweisungen zum Erstellen und Testen eines funktionierenden Beispiels finden Sie unter Ausführen der .NET-Codebeispiele für Amazon S3.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class RestoreArchivedObjectTest { private const string bucketName = "*** bucket name ***"; private const string objectKey = "** archived object key name ***"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 client; public static void Main() { client = new AmazonS3Client(bucketRegion); RestoreObjectAsync(client, bucketName, objectKey).Wait(); } static async Task RestoreObjectAsync(IAmazonS3 client, string bucketName, string objectKey) { try { var restoreRequest = new RestoreObjectRequest { BucketName = bucketName, Key = objectKey, Days = 2 }; RestoreObjectResponse response = await client.RestoreObjectAsync(restoreRequest); // Check the status of the restoration. await CheckRestorationStatusAsync(client, bucketName, objectKey); } catch (AmazonS3Exception amazonS3Exception) { Console.WriteLine("An AmazonS3Exception was thrown. Exception: " + amazonS3Exception.ToString()); } catch (Exception e) { Console.WriteLine("Exception: " + e.ToString()); } } static async Task CheckRestorationStatusAsync(IAmazonS3 client, string bucketName, string objectKey) { GetObjectMetadataRequest metadataRequest = new GetObjectMetadataRequest { BucketName = bucketName, Key = objectKey }; GetObjectMetadataResponse response = await client.GetObjectMetadataAsync(metadataRequest); Console.WriteLine("restoration status: {0}", response.RestoreInProgress ? "in-progress" : "finished or failed"); } } }

Amazon S3 stellt eine API für Sie bereit, um eine Wiederherstellung des Archivs zu initiieren. Weitere Informationen finden Sie unter RestoreObject in der API-Referenz zum Amazon Simple Storage Service.

Verwenden Sie den restore-object-Befehl, um Objekte von S3 Glacier Flexier Retrieval wiederherzustellen.

Im folgenden Beispiel wird das Objekt dir1/example.obj für 25 Tage in awsexamplebucket wiederhergestellt.

aws s3api restore-object --bucket awsexamplebucket --key dir1/example.obj --restore-request '{"Days":25,"GlacierJobParameters":{"Tier":"Standard"}}'

Wenn die im Beispiel verwendete JSON-Syntax zu einem Fehler auf einem Windows-Client führt, ersetzen Sie die Wiederherstellungsanforderung durch die folgende Syntax:

--restore-request Days=25,GlacierJobParameters={"Tier"="Standard"}

Sie können den folgenden Befehl verwenden, um den Status Ihrer restore-object-Anforderung zu überwachen:

aws s3api head-object --bucket awsexamplebucket --key dir1/example.obj

Weitere Informationen finden Sie unter restore-object in der AWS CLI-Befehlsreferenz.