Amazon Simple Storage Service
Entwicklerhandbuch (API-Version 2006-03-01)

Verwendung von AWS SDK for Java

AWS SDK for Java stellt eine API für den Amazon S3-Bucket und Objektoperationen bereit. Für Objektoperationen stellt das SDK – zusätzlich zu der API für das Hochladen von Objekten in einer einzigen Operation – eine API zum mehrteiligen Hochladen großer Objekte bereit. Weitere Informationen finden Sie unter Hochladen von Objekten unter Verwendung des API für mehrteilige Uploads.

Das AWS SDK for Java bietet Ihnen die Option, eine High-Level- oder eine Low-Level-API zu verwenden.

API auf niedriger Ebene

Die Low-Level-APIs entsprechen den zugrunde liegenden Amazon S3 REST-Operationen, wie beispielsweise zum Erstellen, Aktualisieren und Löschen, die auf Buckets und Objekte angewendet werden. Wenn Sie große Objekte über die Low-Level-API für mehrteilige Uploads hochladen, bietet dies eine bessere Kontrolle. Beispielsweise können Sie damit mehrteilige Uploads unterbrechen und fortsetzen, die Teilegrößen während des Uploads ändern oder Uploads beginnen, obwohl Sie die Größe der Daten nicht vorab kennen. Wenn Sie diese Anforderungen nicht haben, verwenden Sie die High-Level API zum Hochladen von Objekten.

API auf hoher Ebene

Zum Hochladen von Objekten bietet das SDK einen höheren Abstraktionsgrad, indem es die Klasse TransferManager bereitstellt. Die High-Level API ist eine einfachere API, wobei Sie mit nur ein paar Codezeilen Dateien und Streams in Amazon S3 hochladen können. Sie sollten diese API verwenden, um Daten hochzuladen, es sei denn, Sie müssen den Upload kontrollieren, wie im vorigen Abschnitt über die Low-Level API beschrieben.

Für kleinere Datengrößen lädt die TransferManager-API Daten in einer einzigen Operation hoch. Der TransferManager wechselt jedoch zur Verwendung der API für den mehrteiligen Upload, wenn die Datengröße eine bestimmte Schwelle erreicht. Wenn möglich, verwendet der TransferManager mehrere Threads, um die Teile nebenläufig hochzuladen. Wenn der Upload eines Teils fehlschlägt, wiederholt API diesen Upload bis zu dreimal. Dies sind jedoch Optionen, die mit der TransferManagerConfiguration-Klasse konfiguriert werden können.

Anmerkung

Wenn Sie einen Stream für die Datenquelle verwenden, führt die TransferManager-Klasse keine gleichzeitigen Uploads durch.

Die Java API-Organisation

Die folgenden Pakete in AWS SDK for Java stellen die API bereit:

  • com.amazonaws.services.s3 Stellt die APIs für das Erstellen von Amazon S3-Clients und für das Arbeiten mit Buckets und Objekten bereit. Dieses Paket ermöglicht Ihnen beispielsweise, Buckets zu erstellen, Objekte hochzuladen, Objekte abzurufen, Objekte zu löschen und Schlüssel aufzulisten.

  • com.amazonaws.services.s3.transfer Stellt die High-Level-API-Datenoperationen bereit.

    Diese High-Level-API ist darauf ausgelegt, das Übertragen von Objekten in und aus Amazon S3 zu vereinfachen. Dieses Paket beinhaltet die TransferManager-Klasse, die asynchrone Methoden für das Arbeiten mit sowie Abfragen und Bearbeiten von Übertragungen bereitstellt. Außerdem umfasst sie die TransferManagerConfiguration-Klasse, mit der Sie die Mindestteilgröße für den mehrteiligen Upload konfigurieren können, sowie den Schwellenwert (in Bytes), ab wann mehrteilige Uploads verwendet werden sollen.

  • com.amazonaws.services.s3.model – Stellt die Low-Level API-Klassen bereit, um Anfragen zu erstellen und Antworten zu verarbeiten. Es beinhaltet beispielsweise die Klasse GetObjectRequest, um Ihre "Get object"-Anfrage zu beschreiben, die Klasse ListObjectsRequest, um Ihre Listenschlüsselanforderungen zu beschreiben, und die Klasse InitiateMultipartUploadRequest, um mehrteilige Uploads zu erstellen.

Weitere Informationen zur AWS SDK for Java-API finden Sie unter AWS SDK for Java API Reference.

Testen der Amazon S3-Java-Codebeispiele

Die Java-Beispiele in diesem Handbuch sind sämtlich mit der AWS SDK for Java-Version 1.11.321 kompatibel. Für Anleitungen zum Einrichten und Ausführen von Codebeispielen vgl. Erste Schritte mit AWS SDK for Java im AWS SDK for Java-Entwicklerhandbuch.