Herunterladen von Objekten
In diesem Abschnitt wird erläutert, wie Sie Objekte aus einem S3-Bucket herunterladen. Mit Amazon S3 können Sie diese Objekte in einem oder mehreren Buckets speichern. Jedes Objekt kann eine Größe von bis zu 5 TB haben. Der Zugriff auf Amazon-S3-Objekte, die nicht archiviert sind, ist in Echtzeit möglich. Archivierte Objekte müssen jedoch wiederhergestellt werden, bevor sie heruntergeladen werden können. Weitere Informationen zum Herunterladen von archivierten Objekten finden Sie unter Herunterladen von archivierten Objekten.
Ein einzelnes Objekt kann mithilfe der Amazon-S3-Konsole, der AWS Command Line Interface (AWS CLI), der AWS-SDKs oder der Amazon-S3-REST-API heruntergeladen werden. Verwenden Sie die S3-Konsole, um ein Objekt von S3 herunterzuladen, ohne Code schreiben oder Befehle ausführen zu müssen. Weitere Informationen finden Sie unter Herunterladen eines Objekts.
Wenn Sie mehrere Objekte herunterladen möchten, verwenden Sie AWS CloudShell, die AWS CLI oder die AWS-SDKs. Weitere Informationen finden Sie unter Herunterladen mehrerer Objekte.
Wenn Sie einen Teil eines Objekts herunterladen möchten, verwenden Sie zusätzliche Parameter mit der AWS CLI oder der REST-API, um nur die Bytes anzugeben, die heruntergeladen werden sollen. Weitere Informationen finden Sie unter Herunterladen eines Teils eines Objekts.
Wenn Sie ein Objekt herunterladen möchten, für das Sie keine Rechte haben, bitten Sie den Objekteigentümer, eine vorsignierte URL zu generieren, über die Sie das Objekt herunterladen können. Weitere Informationen finden Sie unter Herunterladen eines Objekts von einem anderen AWS-Konto.
Wenn Sie Objekte außerhalb des AWS-Netzwerks herunterladen, fallen Gebühren für die Datenübertragung an. Die Datenübertragung innerhalb des AWS-Netzwerks ist innerhalb derselben AWS-Region kostenlos, für GET-Anfragen fallen jedoch Gebühren an. Weitere Informationen zu den Gebühren für Datenübertragungen und Datenabrufe finden Sie unter Preise für Amazon S3
Themen
Herunterladen eines Objekts
Ein Objekt kann mithilfe der Amazon-S3-Konsole, der AWS CLI, der AWS-SDKs oder der REST-API heruntergeladen werden.
In diesem Abschnitt erfahren Sie, wie Sie mit der Amazon-S3-Konsole ein Objekt aus einem S3-Bucket herunterladen.
Anmerkung
-
Sie können jeweils nur ein Objekt herunterladen.
-
Wenn Sie über die Amazon-S3-Konsole ein Objekt herunterladen, dessen Schlüsselname mit Punkt (
.) endet, wird der Punkt aus dem Schlüsselnamen des heruntergeladenen Objekts entfernt. Wenn der Punkt am Ende des Namens des heruntergeladenen Objekts beibehalten werden soll, müssen Sie die AWS Command Line Interface (AWS CLI), die AWS-SDKs oder die Amazon-S3-REST-API verwenden.
Ein Objekt von einem S3-Bucket herunterladen
-
Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon-S3-Konsole unter https://console.aws.amazon.com/s3/
. -
Wählen Sie im linken Navigationsbereich Allzweck-Buckets oder Verzeichnis-Buckets aus.
-
Wählen Sie in der Liste Buckets den Namen des Buckets aus, aus dem Sie ein Objekt herunterladen möchten.
-
Sie können ein Objekt wie folgt aus einem S3-Bucket herunterladen:
-
Aktivieren Sie das Kontrollkästchen neben dem Objekt und wählen Sie Herunterladen. Wenn Sie das Objekt in einen spezifischen Ordner herunterladen möchten, wählen Sie im Menü Aktionen die Option Herunterladen als.
-
Wenn Sie eine spezifische Version des Objekts herunterladen möchten, aktivieren Sie die Schaltfläche Versionen anzeigen (neben dem Suchfeld). Aktivieren Sie das Kontrollkästchen neben der gewünschten Version des Objekts und wählen Sie Herunterladen. Wenn Sie das Objekt in einen spezifischen Ordner herunterladen möchten, wählen Sie im Menü Aktionen die Option Herunterladen als.
-
Das folgende Beispiel für get-object veranschaulicht, wie Sie die AWS CLI verwenden können, um ein Objekt von Amazon S3 herunterzuladen. Mit diesem Befehl wird das Objekt aus dem Bucket folder/my_image abgerufen. Sie müssen einen Namen amzn-s3-demo-bucket1outfile angeben, der ein Dateiname für das heruntergeladene Objekt ist, z. B.my_downloaded_image.jpg
aws s3api get-object --bucket--keyamzn-s3-demo-bucket1folder/my_imagemy_downloaded_image.jpg
Weitere Informationen und Beispiele finden Sie unter get-object
Beispiele für das Herunterladen eines Objekts mit den AWS-SDKs finden Sie in den Codebeispielen in der Amazon-S3-API-Referenz.
Allgemeine Informationen zur Verwendung verschiedener AWS SDKs finden Sie unter Entwickeln mit Amazon S3 unter Verwendung der AWS SDKs in der API-Referenz zu Amazon S3.
Sie können die REST-API verwenden, um Objekte aus Amazon S3 abzurufen. Weitere Informationen finden Sie unter GetObject in der API-Referenz zu Amazon Simple Storage Service.
Herunterladen mehrerer Objekte
Sie können mehrere Objekte herunterladen, indem Sie AWS CloudShell, die AWS CLI oder die AWS-SDKs verwenden.
AWS CloudShell ist eine Browser-basierte, vorauthentifizierte Shell, die Sie direkt über die starten AWS-Managementkonsole.
Weitere Informationen zu AWS CloudShell finden Sie unter What is CloudShell? im Benutzerhandbuch zu AWS CloudShell.
Wichtig
Mit AWS CloudShell hat Ihr Stammverzeichnis Speicherplatz von bis zu 1 GB pro AWS-Region. Daher können Sie keine Buckets mit Objekten synchronisieren, deren Gesamtwert diesen Wert überschreitet. Weitere Einschränkungen finden Sie unter Service quotas and restrictions im Benutzerhandbuch zu AWS CloudShell.
So laden Sie Objekte mithilfe von AWS CloudShell herunter
-
Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die CloudWatch-Konsole unter https://console.aws.amazon.com/cloudshell/
. -
Führen Sie den folgenden Befehl aus, um Objekte in Ihrem Bucket mit CloudShell zu synchronisieren. Mit dem folgenden Befehl werden Objekte aus dem Bucket mit dem Namen
synchronisiert und ein Ordner mit dem Namenamzn-s3-demo-bucket1in CloudShell erstellt. CloudShell synchronisiert Ihre Objekte in diesem Ordner. Zur Verwendung dieses Befehls ersetzen Sietempdurch eigene Informationen.user input placeholdersaws s3 sync s3://amzn-s3-demo-bucket1./tempAnmerkung
Der Befehl
syncist nicht mit Verzeichnis-Buckets kompatibel.Wenn Sie einen Musterabgleich durchführen möchten, um bestimmte Objekte aus- oder einzuschließen, können Sie die Parameter
--exclude "undvalue"--include "mit demvalue"sync-Befehl verwenden. -
Führen Sie den folgenden Befehl aus, um Ihre Objekte im Ordner
in eine Datei mit dem Namentempzu komprimieren.temp.zipziptemp.zip-rtemp/ -
Wählen Sie Aktionen und anschließend Datei herunterladen aus.
-
Geben Sie den Dateinamen
ein und wählen Sie anschließend Herunterladen aus.temp.zip -
(Optional) Löschen Sie die Datei
und die Objekte, die im Ordnertemp.zipin CloudShell synchronisiert wurden. Mit AWS CloudShell haben Sie persistenten Speicher von bis zu 1 GB pro AWS-Region.tempSie können den folgenden Beispielbefehl verwenden, um die
.zip-Datei und den Ordner zu löschen. Wenn Sie diesen Beispielbefehl verwenden möchten, ersetzen Siedurch Ihre Informationen.user input placeholdersrmtemp.zip&& rm -rftemp/
Das folgende Beispiel zeigt, wie Sie mit der AWS CLI alle Dateien oder Objekte im angegebenen Verzeichnis bzw. unter dem angegebenen Präfix herunterladen können. Mit diesem Befehl werden alle Objekte aus dem Bucket in Ihr aktuelles Verzeichnis kopiert. Wenn Sie diesen Beispielbefehl verwenden möchten, verwenden Sie anstelle von den Namen Ihres Buckets amzn-s3-demo-bucket1. amzn-s3-demo-bucket1
aws s3 cp s3://amzn-s3-demo-bucket1. --recursive
Mit dem folgenden Befehl werden alle Objekte unter dem Präfix im Bucket logs in Ihr aktuelles Verzeichnis heruntergeladen. Darüber hinaus werden die Parameter amzn-s3-demo-bucket1--exclude und --include verwendet, damit nur Objekte mit dem Suffix kopiert werden. Wenn Sie diesen Beispielbefehl verwenden möchten, ersetzen Sie .log durch Ihre Informationen.user input placeholders
aws s3 cp s3://amzn-s3-demo-bucket1/logs/ . --recursive --exclude "*" --include "*.log"
Weitere Informationen und Beispiele finden Sie unter cp
Beispiele zum Herunterladen aller Objekte in einem Amazon-S3-Bucket mit den AWS-SDKs finden Sie unter Codebeispiele in der Amazon-S3-API-Referenz.
Allgemeine Informationen zur Verwendung verschiedener AWS SDKs finden Sie unter Entwickeln mit Amazon S3 unter Verwendung der AWS SDKs in der API-Referenz zu Amazon S3.
Herunterladen eines Teils eines Objekts
Sie können einen Teil eines Objekts mithilfe der AWS CLI oder der REST-API herunterladen. Dazu geben Sie mithilfe zusätzlicher Parameter an, welcher Teil eines Objekts heruntergeladen werden soll.
Der folgende Beispielbefehl führt eine GET-Anforderung für einen Bytebereich im Objekt im Bucket folder/my_data aus. In der Anforderung muss dem Bytebereich das Präfix amzn-s3-demo-bucket1bytes= vorangestellt werden. Das Teilobjekt wird in die Ausgabedatei mit dem Namen heruntergeladen. Wenn Sie diesen Beispielbefehl verwenden möchten, ersetzen Sie my_data_range durch Ihre Informationen.user input placeholders
aws s3api get-object --bucketamzn-s3-demo-bucket1--keyfolder/my_data--range bytes=0-500my_data_range
Weitere Informationen und Beispiele finden Sie unter get-object
Weitere Informationen zum HTTP-Header Range finden Sie unter RFC 9110
Anmerkung
Amazon S3 unterstützt nicht das Abrufen mehrerer Datenbereiche in einer einzelnen GET-Anforderung.
Sie können die Parameter partNumber und Range in der REST-API verwenden, um Objektteile aus Amazon S3 abzurufen. Weitere Informationen finden Sie unter GetObject in der API-Referenz zu Amazon Simple Storage Service.
Herunterladen eines Objekts von einem anderen AWS-Konto
Sie können eine vorsignierte URL verwenden, um anderen Benutzern zeitlich begrenzten Zugriff auf Ihre Objekte zu gewähren, ohne Ihre Bucket-Richtlinie aktualisieren zu müssen.
Die vorsignierte URL kann in einem Browser eingegeben oder von einem Programm verwendet werden, um ein Objekt herunterzuladen. Die von der URL verwendeten Anmeldeinformationen sind die des AWS-Benutzers, der die URL generiert hat. Nachdem die URL erstellt wurde, können alle Benutzer, die über die vorsignierte URL verfügen, das entsprechende Objekt herunterladen, bis die URL abläuft.
Sie können die Amazon-S3-Konsole verwenden, um eine vordefinierte URL für die Freigabe eines Objekts in einem Allzweck-Bucket zu generieren, indem Sie die folgenden Schritte ausführen. Bei Verwendung der Konsole beträgt die maximale Ablaufzeit für eine vorsignierte URL 12 Stunden ab dem Zeitpunkt ihrer Erstellung.
So generieren Sie eine vorsignierte URL mit der Amazon-S3-Konsole
Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon-S3-Konsole unter https://console.aws.amazon.com/s3/
. -
Wählen Sie im linken Navigationsbereich Allzweck-Buckets aus.
-
Wählen Sie in der Bucket-Liste den Namen des Buckets, der das Objekt enthält, für das Sie eine vordefinierte URL wünschen.
-
In der Liste Objekte wählen Sie das Objekt aus, für das Sie eine vorsignierte URL erstellen möchten.
-
Wählen Sie im Menü Objektaktionen die Option An vorsignierte URL freigeben aus.
-
Geben Sie an, wie lange die vorsignierte URL gültig sein soll.
-
Wählen Sie Create presigned URL (Vorsignierte URL erstellen).
-
Wenn eine Bestätigungsmeldung angezeigt wird, wird die URL automatisch in Ihre Zwischenablage kopiert. Sie sehen eine Schaltfläche zum Kopieren der vorsignierten URL, wenn Sie sie erneut kopieren müssen.
-
Um das Objekt herunterzuladen, fügen Sie die URL in einen beliebigen Browser ein. Daraufhin wird versucht, das Objekt herunterzuladen.
Weitere Informationen zu vorsignierten URLs und anderen Methoden, diese zu erstellen, finden Sie unter Herunterladen und Hochladen von Objekten mit vorsignierten URLs.
Herunterladen von archivierten Objekten
Sie können Objekte, auf die selten zugegriffen wird, archivieren, um Ihre Speicherkosten dafür zu senken. Wenn Sie ein Objekt archivieren, wird es in einen kostengünstigen Speicher verschoben. Sie können also nicht in Echtzeit darauf zugreifen. Wenn Sie ein archiviertes Objekt herunterladen möchten, müssen Sie es zunächst wiederherstellen.
Je nach Speicherklasse können archivierte Objekte innerhalb von Minuten oder Stunden wiederhergestellt werden. Sie können ein archiviertes Objekt mithilfe der Amazon-S3-Konsole, S3 Batch Operations, der Amazon-S3-REST-API, der AWS-SDKs und der AWS Command Line Interface (AWS CLI) wiederherstellen.
Detaillierte Anweisungen finden Sie unter Wiederherstellen eines archivierten Objekts. Nachdem Sie das archivierte Objekt wiederhergestellt haben, können Sie es herunterladen.
Herunterladen von Objekten auf der Grundlage von Metadaten
Sie können Vorbedingungen hinzufügen, um ein Objekt basierend auf seinen Metadaten mithilfe einer bedingten Leseanforderung herunterzuladen. Sie können ein Objekt auf der Grundlage seines Entity-Tags (ETag) oder des Datums der letzten Änderung zurückgeben. Dies kann eine S3-Operation auf Objekte beschränken, die seit einem bestimmten Datum aktualisiert wurden oder nur eine bestimmte Objektversion zurückgeben.
Sie können bedingte Schreibvorgänge für GetObject- oder HeadObject-Anfragen verwenden.
Weitere Informationen zu bedingten Anfragen finden Sie unter Hinzufügen von Vorbedingungen zu S3-Vorgängen mit bedingten Anforderungen.
Fehlerbehebung beim Herunterladen von Objekten
Unzureichende Berechtigungen oder falsche Bucket- oder AWS Identity and Access Management (IAM)-Benutzerrichtlinien können beim Versuch, Objekte von Amazon S3 herunterzuladen, Fehler verursachen. Diese Probleme können häufig den Fehler Zugriff verweigert (403 Verboten) hervorrufen. Dies bedeutet, dass Amazon S3 den Zugriff auf eine Ressource nicht gewähren kann.
Weitere Informationen zu den häufigsten Ursachen für den Fehler Zugriff verweigert (403 Verboten) finden Sie unter Beheben von „Zugriff verweigert“-Fehlern (403 Forbidden) in Amazon S3.
Wenn Sie einen 404 NoSuchKey-Fehler erhalten, wenn Sie versuchen, auf ein Objekt zuzugreifen, siehe Wie kann ich den 404 NoSuchKey-Fehler von Amazon S3 beheben?