Hochladen eines Objekts zu einem Verzeichnis-Bucket - Amazon Simple Storage Service

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.

Hochladen eines Objekts zu einem Verzeichnis-Bucket

Die Kopieroperation erzeugt eine Kopie eines Objekts, das bereits in Amazon S3 gespeichert ist. Sie können Objekte zwischen Verzeichnis-Buckets und Allzweck-Buckets kopieren. Sie können Objekte auch innerhalb eines Buckets und zwischen Buckets desselben Typs kopieren, z. B. von Verzeichnis-Bucket zu Verzeichnis-Bucket.

Sie können in einem einzigen atomaren Vorgang eine Kopie eines Objekts mit einer Größe von bis zu 5 GB erstellen. Um jedoch ein Objekt zu kopieren, das größer als 5 GB ist, müssen Sie die mehrteiligen API Upload-Operationen verwenden. Weitere Informationen finden Sie unter Mehrteilige Uploads mit Verzeichnis-Buckets verwenden.

Berechtigungen

Um Objekte zu kopieren, müssen Sie über die folgenden Berechtigungen verfügen:

  • Um Objekte von einem Verzeichnis-Bucket zu einem anderen Verzeichnis-Bucket zu kopieren, benötigen Sie die s3express:CreateSession-Berechtigung.

  • Um Objekte aus Verzeichnis-Buckets zu Allzweck-Buckets zu kopieren, benötigen Sie die s3express:CreateSession-Berechtigung und s3:PutObject-Berechtigung zum Schreiben der Objektkopie in den Ziel-Bucket.

  • Um Objekte aus Allzweck-Buckets in Verzeichnis-Buckets zu kopieren, benötigen Sie die s3express:CreateSession s3:GetObject Erlaubnis und das Recht, das kopierte Quellobjekt zu lesen.

    Weitere Informationen finden Sie unter CopyObjectin der Amazon Simple Storage Service API Reference.

Verschlüsselung

Amazon S3 verschlüsselt automatisch alle neuen Objekte, die in einen S3-Bucket hochgeladen werden. Die Standardverschlüsselungskonfiguration eines S3-Buckets ist immer aktiviert und mindestens auf serverseitige Verschlüsselung mit verwalteten Amazon S3 S3-Schlüsseln (SSE-S3) eingestellt.

Für Verzeichnis-Buckets werden SSE -S3 und serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) -Schlüsseln (SSE-) unterstützt. KMS Wenn es sich bei dem Ziel-Bucket um einen Verzeichnis-Bucket handelt, empfehlen wir, dass die Standardverschlüsselung des Ziel-Buckets die gewünschte Verschlüsselungskonfiguration verwendet und Sie die Standardverschlüsselung des Buckets nicht überschreiben. Anschließend werden neue Objekte automatisch mit den gewünschten Verschlüsselungseinstellungen verschlüsselt. Außerdem werden S3-Bucket-Keys nicht unterstützt, wenn Sie KMS verschlüsselte Objekte von Allzweck-Buckets in Verzeichnis-Buckets, von Verzeichnis-Buckets in Allzweck-Buckets oder zwischen Verzeichnis-Buckets kopieren SSE CopyObject. In diesem Fall ruft Amazon S3 AWS KMS jedes Mal, wenn eine Kopieranforderung für ein KMS -verschlüsseltes Objekt gestellt wird, auf. Weitere Informationen zum Verhalten beim Überschreiben der Verschlüsselung in Verzeichnis-Buckets finden Sie unter Serverseitige Verschlüsselung AWS KMS für Uploads neuer Objekte angeben.

Für allgemeine Buckets können Sie SSE -S3 (Standard), serverseitige Verschlüsselung mit () Schlüsseln (-), zweischichtige serverseitige Verschlüsselung mit AWS Key Management Service Schlüsseln (SSE-KMS) oder serverseitige Verschlüsselung mit vom Kunden AWS KMS bereitgestellten Schlüsseln (DSSEKMS-C) verwenden.AWS KMS SSE

Wenn Sie eine Kopieranforderung stellen, die angibt, DSSE - KMS oder SSE -C für einen Verzeichnis-Bucket (entweder den Quell- oder den Ziel-Bucket) zu verwenden, gibt die Antwort einen Fehler zurück.

Tags

Verzeichnis-Buckets unterstützen keine Tags. Wenn Sie ein Objekt mit Tags aus einem Allzweck-Bucket in einen Verzeichnis-Bucket kopieren, erhalten Sie eine HTTP 501 (Not Implemented) Antwort. Weitere Informationen finden Sie unter CopyObjectin der Amazon Simple Storage Service API Reference.

ETags

Entitäts-Tags (ETags) für S3 Express One Zone sind zufällige alphanumerische Zeichenfolgen und keine MD5 Prüfsummen. Verwenden Sie zusätzliche Prüfsummen, um die Objektintegrität sicherzustellen.

Zusätzliche Prüfsummen

S3 Express One Zone bietet Ihnen die Möglichkeit, den Prüfsummenalgorithmus auszuwählen, der zur Validierung Ihrer Daten beim Hoch- oder Herunterladen verwendet wird. Sie können einen der folgenden Algorithmen zur Prüfung der Datenintegrität mit Secure Hash Algorithms (SHA) oder Cyclic Redundancy Check (CRC) auswählen:CRC32,CRC32C, SHA -1 und -256. SHA MD5basierte Prüfsummen werden von der S3 Express One Zone-Speicherklasse nicht unterstützt.

Weitere Informationen finden Sie unter Bewährte Methoden für zusätzliche S3-Prüfsummen.

Unterstützte Features

Weitere Informationen darüber, welche Amazon S3-Funktionen für S3 Express One Zone unterstützt werden, finden Sie unterVerstehen, wie sich S3 Express One Zone unterscheidet.

Anmerkung

Die Einschränkungen und Einschränkungen beim Kopieren eines Objekts in einen Verzeichnis-Bucket mit der Konsole lauten wie folgt:

  • Die Copy Aktion gilt für alle Objekte in den angegebenen Ordnern (Präfixe). Objekte, die diesen Ordnern hinzugefügt wurden, während die Aktion ausgeführt wird, können betroffen sein.

  • Objekte, die mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (SSE-C) verschlüsselt wurden, können nicht mit der S3-Konsole kopiert werden. Verwenden Sie, oder Amazon S3 RESTAPI, um mit SSE -C verschlüsselte Objekte zu kopieren. AWS CLI AWS SDK

  • Bei kopierten Objekten werden die Objektsperren-Einstellungen der Originalobjekte nicht beibehalten.

  • Wenn der Bucket, aus dem Sie Objekte kopieren, die vom Bucket-Besitzer erzwungene Einstellung für S3-Objekteigentum verwendet, ACLs wird das Objekt nicht an das angegebene Ziel kopiert.

  • Wenn Sie Objekte in einen Bucket kopieren möchten, der die vom Bucket-Besitzer erzwungene Einstellung für S3-Objekteigentum verwendet, stellen Sie sicher, dass der Quell-Bucket auch die erzwungene Einstellung des Bucket-Besitzers verwendet, oder entfernen Sie alle ACL Objektzuweisungen an andere AWS Konten und Gruppen.

  • Objekte, die aus einem Allzweck-Bucket in einen Verzeichnis-Bucket kopiert wurden, ACLs behalten keine Objekt-Tags oder Etag-Werte bei. Prüfsummenwerte können kopiert werden, entsprechen aber nicht einem Etag. Der Prüfsummenwert kann sich im Vergleich zum Zeitpunkt des Hinzufügens ändern.

  • Für alle Objekte, die in einen Verzeichnis-Bucket kopiert werden, wird die Einstellung „Besitzer des Buckets“ für S3 Object Ownership erzwungen.

Um ein Objekt aus einem Allzweck-Bucket oder einem Verzeichnis-Bucket in einen Verzeichnis-Bucket zu kopieren
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie im linken Navigationsbereich Buckets aus.

  3. Wählen Sie den Bucket aus, aus dem Sie Objekte kopieren möchten:

    • Um aus einem Allzweck-Bucket zu kopieren, wählen Sie die Registerkarte Allzweck-Buckets.

    • Um aus einem Verzeichnis-Bucket zu kopieren, wählen Sie den Tab Directory-Buckets.

  4. Wählen Sie den Allzweck-Bucket oder den Verzeichnis-Bucket, der die Objekte enthält, die Sie kopieren möchten.

  5. Wählen Sie dieObjekte-Tag. Aktivieren Sie auf der Seite Objekte das Kontrollkästchen links neben den Namen der Objekte, die Sie kopieren möchten.

  6. Wählen Sie im Menü Actions (Aktionen) die Option Copy (Kopieren) aus.

    Die Seite Kopieren wird angezeigt.

  7. Wählen Sie unter Ziel die Option Directory-Bucket für Ihren Zieltyp aus. Um den Zielpfad anzugeben, wählen Sie Browse S3 aus, navigieren Sie zum Ziel und wählen Sie dann das Optionsfeld links neben dem Ziel. Wählen Sie unten rechts Choose destination (Ziel auswählen) aus.

    Geben Sie alternativ den Zielpfad ein.

  8. Wählen Sie unter Zusätzliche Kopiereinstellungen aus, ob Sie Quelleinstellungen kopieren, Keine Einstellungen angeben oder Einstellungen angeben möchten. Quelleinstellungen kopieren ist die Standardoption. Wenn Sie das Objekt nur ohne die Quelleinstellungsattribute kopieren möchten, wählen Sie „Keine Einstellungen angeben“. Wählen Sie „Einstellungen angeben“, um Einstellungen für serverseitige Verschlüsselung, Prüfsummen und Metadaten anzugeben.

  9. Wählen Sie unten rechts Copy (Kopieren) aus. Amazon S3 kopiert Ihre Objekte in den Zielordner.

Anmerkung

Beim Kopieren eines Objekts in einen Allzweck-Bucket mit der Konsole gelten folgende Einschränkungen und Einschränkungen:

  • Die Copy Aktion gilt für alle Objekte in den angegebenen Ordnern (Präfixe). Objekte, die diesen Ordnern hinzugefügt wurden, während die Aktion ausgeführt wird, können betroffen sein.

  • Objekte, die mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (SSE-C) verschlüsselt wurden, können nicht mit der S3-Konsole kopiert werden. Verwenden Sie, oder Amazon S3 RESTAPI, um mit SSE -C verschlüsselte Objekte zu kopieren. AWS CLI AWS SDK

  • Bei kopierten Objekten werden die Objektsperren-Einstellungen der Originalobjekte nicht beibehalten.

  • Wenn der Bucket, aus dem Sie Objekte kopieren, die vom Bucket-Besitzer erzwungene Einstellung für S3-Objekteigentum verwendet, ACLs wird das Objekt nicht an das angegebene Ziel kopiert.

  • Wenn Sie Objekte in einen Bucket kopieren möchten, der die vom Bucket-Besitzer erzwungene Einstellung für S3-Objekteigentum verwendet, stellen Sie sicher, dass der Quell-Bucket auch die erzwungene Einstellung des Bucket-Besitzers verwendet, oder entfernen Sie alle ACL Objektzuweisungen an andere AWS Konten und Gruppen.

So kopieren Sie ein Objekt aus einem Verzeichnis-Bucket in einen Allzweck-Bucket
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie im linken Navigationsbereich Buckets aus.

  3. Wählen Sie den Tab Directory-Buckets.

  4. Wählen Sie den Verzeichnis-Bucket aus, der die Objekte enthält, die Sie kopieren möchten.

  5. Wählen Sie dieObjekte-Tag. Aktivieren Sie auf der Seite Objekte das Kontrollkästchen links neben den Namen der Objekte, die Sie kopieren möchten.

  6. Wählen Sie im Menü Actions (Aktionen) die Option Copy (Kopieren) aus.

  7. Wählen Sie unter Ziel die Option Allzweck-Bucket für Ihren Zieltyp aus. Um den Zielpfad anzugeben, wählen Sie Browse S3, navigieren Sie zum Ziel und wählen Sie das Optionsfeld links neben dem Ziel. Wählen Sie unten rechts Choose destination (Ziel auswählen) aus.

    Geben Sie alternativ den Zielpfad ein.

  8. Wählen Sie unter Zusätzliche Kopiereinstellungen aus, ob Sie Quelleinstellungen kopieren, Keine Einstellungen angeben oder Einstellungen angeben möchten. Quelleinstellungen kopieren ist die Standardoption. Wenn Sie das Objekt nur ohne die Quelleinstellungsattribute kopieren möchten, wählen Sie „Keine Einstellungen angeben“. Wählen Sie „Einstellungen angeben“, um Einstellungen für SpeicherklasseACLs, Objekt-Tags, Metadaten, serverseitige Verschlüsselung und zusätzliche Prüfsummen anzugeben.

  9. Wählen Sie unten rechts Copy (Kopieren) aus. Amazon S3 kopiert Ihre Objekte in den Zielordner.

SDK for Java 2.x
public static void copyBucketObject (S3Client s3, String sourceBucket, String objectKey, String targetBucket) { CopyObjectRequest copyReq = CopyObjectRequest.builder() .sourceBucket(sourceBucket) .sourceKey(objectKey) .destinationBucket(targetBucket) .destinationKey(objectKey) .build(); String temp = ""; try { CopyObjectResponse copyRes = s3.copyObject(copyReq); System.out.println("Successfully copied " + objectKey +" from bucket " + sourceBucket +" into bucket "+targetBucket); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Der folgende copy-object Beispielbefehl zeigt, wie Sie mit dem AWS CLI ein Objekt von einem Bucket in einen anderen Bucket kopieren können. Sie können Objekte zwischen Bucket-Typen kopieren. Um diesen Befehl auszuführen, ersetzen Sie die Platzhalter für Benutzereingaben durch Ihre eigenen Informationen.

aws s3api copy-object --copy-source SOURCE_BUCKET/SOURCE_KEY_NAME --key TARGET_KEY_NAME --bucket TARGET_BUCKET_NAME

Weitere Informationen finden Sie unter copy-objectin der AWS CLI Befehlsreferenz.