Verwenden von AWS SDK for Java mit Amazon S3 Glacier - Amazon S3 Glacier

Wenn Sie mit dem Archivierungsspeicher in Amazon Simple Storage Service (Amazon S3) noch nicht vertraut sind, empfehlen wir Ihnen, sich zunächst über die S3-Glacier-Speicherklassen in Amazon S3 (S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval und S3 Glacier Deep Archive) zu informieren. Weitere Informationen finden Sie unter S3 Glacier-Speicherklassen und Speicherklassen für die Archivierung von Objekten im Amazon S3 S3-Benutzerhandbuch.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von AWS SDK for Java mit Amazon S3 Glacier

Wie in Verwenden der AWS-SDKs mit Amazon S3 Glacier beschrieben, stellt AWS SDK for Java sowohl eine High-Level- als auch eine Low-Level-API für Amazon S3 Glacier (S3 Glacier) bereit. Weitere Informationen zum Herunterladen des AWS SDK for Java finden Sie im Artikel zum Amazon-SDK für Java.

Anmerkung

Das AWS SDK for Java bietet threadsichere Clients für den Zugriff auf S3 Glacier. Als bewährte Methode sollten Ihre Anwendungen einen Client erstellen und diesen zwischen den Threads wiederverwenden.

Verwenden der Low-Level-API

Die AmazonGlacierClient-Klasse der Low-Level-API enthält alle Methoden, die sich den zugrunde liegenden REST-Operationen in S3 Glacier zuordnen lassen (API-Referenz für Amazon S3 Glacier). Wenn Sie eine dieser Methoden aufrufen, müssen Sie ein zugehöriges Anforderungsobjekt erstellen und ein Antwortobjekt bereitstellen, mit dem die Methode die S3-Glacier-Antwort an die Operation zurückgeben kann.

Beispielsweise stellt die AmazonGlacierClient-Klasse die createVault-Methode für die Erstellung eines Tresors zur Verfügung. Diese Methode lässt sich der zugrunde liegenden REST-Operation „Create Vault” zuordnen (siehe Create Vault (PUT vault)). Um diese Methode zu verwenden, müssen Sie Instances des CreateVaultResult-Objekts erstellen, das die S3-Glacier-Antwort empfängt, wie im folgenden Java-Codeausschnitt gezeigt:

AmazonGlacierClient client = new AmazonGlacierClient(credentials); client.setEndpoint("https://glacier.us-west-2.amazonaws.com/"); CreateVaultRequest request = new CreateVaultRequest() .withAccountId("-") .withVaultName(vaultName); CreateVaultResult result = client.createVault(createVaultRequest);

Alle Low-Level-Beispiele in diesem Handbuch entsprechen diesem Muster.

Anmerkung

Im vorstehenden Codesegment wird beim Erstellen der Anfrage AccountID angegeben. Bei Verwendung des AWS SDK for Java ist die Angabe der AccountId in der Anfrage optional, und daher wird dieser Wert in allen Low-Level-Beispielen in diesem Handbuch nicht festgelegt. AccountId ist die AWS-Konto-ID. Dieser Wert muss mit der AWS-Konto-ID übereinstimmen, die mit den zum Signieren der Anforderung verwendeten Anmeldeinformationen verknüpft ist. Sie können entweder eine AWS-Konto-ID oder optional einen Bindestrich („-“) angeben. Bei Angabe eines Bindestrichs verwendet S3 Glacier die AWS-Konto-ID, die mit den zum Signieren der Anforderung verwendeten Anmeldeinformationen verknüpft ist. Wenn Sie Ihre Konto-ID angeben, müssen Sie sie ohne Bindestriche eingeben. Wenn Sie bei Verwendung von AWS SDK for Java keine Konto-ID angeben, legt die Bibliotheksfunktion die Konto-ID auf ‚-‘ fest,

Verwenden der High-Level-API

Zur weiteren Vereinfachung der Anwendungsentwicklung stellt AWS SDK for Java die ArchiveTransferManager-Klasse bereit, die für einige Methoden der Low-Level-API eine Abstraktion auf höherer Ebene implementiert. Sie stellt nützliche Methoden wie upload und download für die Archivoperationen bereit.

Beispielsweise wird im folgenden Java-Codeausschnitt die High-Level-Methode upload zum Hochladen eines Archivs verwendet.

String vaultName = "examplevault"; String archiveToUpload = "c:/folder/exampleArchive.zip"; ArchiveTransferManager atm = new ArchiveTransferManager(client, credentials); String archiveId = atm.upload(vaultName, "Tax 2012 documents", new File(archiveToUpload)).getArchiveId();

Beachten Sie, dass alle von Ihnen durchgeführten Operationen für die AWS-Region gelten, die Sie beim Erstellen des ArchiveTransferManager-Objekts angegeben haben. Wenn Sie keine AWS-Region angeben, legt AWS SDK for Java als AWS-Standardregion us-east-1 fest.

Alle High-Level-Beispiele in diesem Handbuch entsprechen diesem Muster.

Anmerkung

Die High-Level-Klasse ArchiveTransferManager kann mit einer AmazonGlacierClient-Instance oder einer AWSCredentials-Instance konstruiert werden.

Ausführen von Java-Beispielen für Amazon S3 Glacier unter Verwendung von Eclipse

Am einfachsten gelingt der Einstieg in die Java-Codebeispiele, indem die neueste AWS Toolkit for Eclipse installiert wird. Informationen zum Installieren oder Aktualisieren des neuesten Toolkits finden Sie unter http://aws.amazon.com/eclipse. Die folgenden Aufgaben führen Sie durch das Erstellen und Testen der Java-Codebeispiele aus diesem Abschnitt.

1

Erstellen Sie ein Standardprofil der Anmeldeinformationen für Ihre AWS-Anmeldeinformationen, wie im AWS SDK for Java-Thema Providing AWS Credentials in the Amazon SDK for Java beschrieben.

2

Erstellen Sie ein neues AWS-Java-Projekt in Eclipse. Das Projekt ist mit dem AWS SDK for Java vorkonfiguriert.

3

Kopieren Sie den Code aus dem Abschnitt, den Sie gerade lesen, in Ihr Projekt.

4

Aktualisieren Sie den Code mit den erforderlichen Daten. Wenn Sie beispielsweise eine Datei hochladen, geben Sie den Dateipfad und den Bucket-Namen an.

5

Führen Sie den Code aus. Stellen Sie sicher, dass das Objekt mit der AWS Management Console erstellt wurde. Weitere Informationen zum AWS Management Console finden Sie unter http://aws.amazon.com/console/.

Festlegen des Endpunkts

Standardmäßig verwendet das AWS SDK for Java den Endpunkt https://glacier.us-east-1.amazonaws.com. Sie können den Endpunkt explizit einrichten, wie in den folgenden Java-Codeausschnitten gezeigt.

Der folgende Codeausschnitt zeigt, wie der Endpunkt in der Low-Level-API auf die Region „USA West (Oregon)“ (us-west-2) festgelegt wird.

client = new AmazonGlacierClient(credentials); client.setEndpoint("glacier.us-west-2.amazonaws.com");

Der folgende Codeausschnitt zeigt, wie der Endpunkt in der High-Level-API auf die Region „USA West (Oregon)“ festgelegt wird.

glacierClient = new AmazonGlacierClient(credentials); sqsClient = new AmazonSQSClient(credentials); snsClient = new AmazonSNSClient(credentials); glacierClient.setEndpoint("glacier.us-west-2.amazonaws.com"); sqsClient.setEndpoint("sqs.us-west-2.amazonaws.com"); snsClient.setEndpoint("sns.us-west-2.amazonaws.com"); ArchiveTransferManager atm = new ArchiveTransferManager(glacierClient, sqsClient, snsClient);

Eine Liste der unterstützten AWS-Regionen und Endpunkte finden Sie unter Zugreifen auf Amazon S3 Glacier.