New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
Wie kopiere ich alle Objekte von einem Amazon S3-Bucket in einen anderen Bucket?
Ich möchte alle meine Objekte von einem Amazon Simple Storage Service (Amazon S3)-Bucket in einen anderen Bucket kopieren oder verschieben.
Kurzbeschreibung
Wähle eine der folgenden Optionen, um Objekte von einem S3-Bucket in einen anderen Bucket zu kopieren:
- Den sync-Befehl über die AWS Command Line Interface (AWS CLI) ausführen
- Verwendung von S3-Batch Operationen bei Buckets, die viele Objekte enthalten
Der sync-Befehl funktioniert gut bei Buckets, die nicht sehr groß sind. Es ist jedoch kostspielig, den sync-Befehl auszuführen, um große Buckets mit Millionen von Objekten zu kopieren, und beim Kopiervorgang kann es zu einer Zeitüberschreitung kommen. Wenn es beim Kopieren eines Buckets zu Zeitüberschreitungen kommt, verwende Amazon CloudWatch-Metriken, um die Größe und Anzahl der Objekte im Bucket zu berechnen. Wenn du Millionen von Objekten in deinem S3-Bucket hast, ist es eine bewährte Methode, S3-Batch-Operationen zum Kopieren der Objekte zu verwenden.
Hinweis: Um Objekte aus deinem Bucket in einen Bucket zu kopieren, der einem anderen AWS-Konto gehört, verwende AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement), um kontoübergreifende Berechtigungen einzurichten. Stelle sicher, dass deine IAM-Rolle über s3:GetObjectTagging-Berechtigungen für Quellobjekte und s3:PutObjectTagging-Berechtigungen für Zielobjekte verfügt.
Führe einen oder mehrere der folgenden Schritte aus, um die Synchronisierungsleistung zu erhöhen und die Objekte schneller zu kopieren:
- Optimieren der AWS CLI, um eine höhere Parallelität zu verwenden
- Aufteilung des Prozesses in mehrere Synchronisierungsbefehle auf der Grundlage von Objektnamenspräfixen
- Organisation der S3-Bucket-Architektur gemäß bewährten Methoden
Lösung
Hinweis: Wenn du beim Ausführen von AWS CLI-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Kopieren von Objekten zwischen den S3-Buckets
Gehe wie folgt vor, um Objekte von einem Bucket in einen anderen Bucket zu kopieren:
-
Wenn du S3-Objekte in der Amazon Simple Storage Service Glacier-Speicherklasse archiviert hast, stelle die Objekte wieder her.
-
Führe den folgenden sync-Befehl aus, ersetze jedoch example_source_bucket und example_target_bucket durch deinen S3-Bucket-Namen:
aws s3 sync s3://example_source_bucket s3://example_target_bucket
Hinweis: Der sync-Befehl kopiert nur die Objekte, die sich noch nicht im Ziel-Bucket befinden. Um jedes Objekt explizit zu kopieren, verwende den cp-Befehl anstelle des sync-Befehls. Wenn du den sync-Befehl für einen versionierten Bucket verwendest, wird nur die aktuelle Version jedes Objekts kopiert. Standardmäßig werden bei diesem Verhalten Objektmetadaten beibehalten.
-
(Optional) Wenn eine Zeitüberschreitung auftritt, verwende den CloudWatch-Befehl get-metric-statistics, um die Bucket-Größe und die Anzahl der Objekte zu berechnen.
Führe den folgenden Befehl aus, um die Größe des Buckets zu berechnen:
aws cloudwatch get-metric-statistics --namespace AWS/S3 --metric-name BucketSizeBytes --dimensions Name=BucketName,Value=example_source_bucket Name=StorageType,Value=StandardStorage --start-time 2021-05-11T00:00 --end-time 2021-05-11T00:10 --period 3600 --statistics Average --unit Bytes --output json
Führe den folgenden Befehl aus, um die Anzahl der Objekte im Bucket zu berechnen:
aws cloudwatch get-metric-statistics --namespace AWS/S3 --metric-name NumberOfObjects --dimensions Name=BucketName,Value=example_source_bucket Name=StorageType,Value=AllStorageTypes --start-time 2021-05-11T00:00 --end-time 2021-05-11T00:10 --period 600 --statistic Average --output json
Wenn dein Bucket groß ist und Millionen von Objekten enthält, verwende den sync-Befehl nicht. Verwende stattdessen S3-Batch-Operationen, wenn du deinen Bucket kopierst.
Wichtig: Zugriffssteuerungslisten (ACLs) werden nicht vom Quell-Bucket in den Ziel-Bucket kopiert, wenn du den sync-Befehl ausführst. Wenn es sowohl für den Quell- als auch für den Ziel-Bucket aktive ACLs gibt, gewähren die Zielobjekt-ACLs dem Konto, das den Kopiervorgang durchgeführt hat, FULL_CONTROL. Informationen zur Problembehandlung mit dem sync-Befehl findest du unter Warum kann ich kein Objekt zwischen zwei Amazon S3-Buckets kopieren?
Sicherstellen, dass die Objekte kopiert wurden
Gehe wie folgt vor, um zu überprüfen, ob die Objekte kopiert wurden:
- Führe die folgenden Is-Befehle aus, um den Inhalt der Quell- und Ziel-Buckets zu überprüfen:
aws s3 ls --recursive s3://example_source_bucket --summarize > bucket-contents-source.txt
Hinweis: Beim ls-Befehl kann es bei großen Buckets zu einer Zeitüberschreitung kommen. Verwende bei großen Buckets anstelle des ls-Befehls CloudWatch-Metriken, um die Größe des Buckets und die Gesamtzahl der Objekte zu berechnen. Da Amazon CloudWatch-Metriken jedoch nur einmal täglich abgerufen werden, können die CloudWatch-Ergebnisse von den Ergebnissen des ls-Befehls abweichen.aws s3 ls --recursive s3://example_target_bucket --summarize > bucket-contents-target.txt
- Verwende die Textdateien, die mit den vorherigen ls-Befehlen ausgegeben wurden, um Objekte zwischen dem Quell- und dem Ziel-Bucket zu vergleichen. Die Ausgabe ähnelt dem folgenden Beispiel:
2017-11-20 21:17:39 15362 s3logo.png Total Objects: 1 Total Size: 15362
Hinweis: Wenn du Anwendungen oder Workloads hast, die API-Aufrufe an den Quell-Bucket tätigen, aktualisiere diese API-Aufrufe an den Ziel-Bucket. Möglicherweise musst du sync-Befehle ausführen, um Diskrepanzen zwischen Quell- und Ziel-Buckets zu beheben, wenn du häufig Schreibvorgänge durchführst.
Ähnliche Informationen
Objekt in einen Verzeichnis-Bucket kopieren
Wie kopiere ich Amazon S3-Objekte von einem anderen AWS-Konto?
Ähnliche Videos


Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren