Objekte kopieren - 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.

Objekte kopieren

Die Kopieroperation erzeugt eine Kopie eines Objekts, das bereits in Amazon S3 gespeichert ist.

Sie können eine Kopie Ihres Objekts mit einer Größe von bis zu 5 GB in einer einzigen atomaren Operation hochladen. Um jedoch ein Objekt zu kopieren, das größer als 5 GB ist, müssen Sie die API für mehrteilige Uploads verwenden.

Mit der CopyObject-Operation können Sie:

  • Zusätzliche Kopien von Objekten erstellen

  • Objekte umbenennen, indem Sie sie kopieren und die Originalobjekte löschen

  • Objekte über Amazon-S3-Standorte verschieben (z. B. us-west-1 und Europa)

  • Objektmetadaten ändern

    Jedes Amazon-S3-Objekt hat Metadaten. Dies sind Name/Wert-Paare. Sie können Objekt-Metadaten beim Hochladen festlegen. Nachdem Sie das Objekt hochgeladen haben, können Sie Objekt-Metadaten nicht mehr ändern. Die einzige Methode, wie Sie Objekt-Metadaten ändern können, ist es, eine Kopie des Objekts anzulegen und die Metadaten festzulegen. Geben Sie in der Kopieroperation dasselbe Objekt als Quelle und Ziel an.

Jedes Objekt hat Metadaten. Einige davon sind Systemmetadaten, andere sind benutzerdefiniert. Benutzer steuern einige der Systemmetadaten, wie beispielsweise die Speicherklassenkonfiguration, die für das Objekt verwendet wird. Außerdem können Sie die serverseitige Verschlüsselung konfigurieren. Wenn Sie ein Objekt kopieren, werden auch die Systemmetadaten und benutzerdefinierte Metadaten kopiert. Amazon S3 setzt die vom System gesteuerten Metadaten zurück. Wenn Sie beispielsweise ein Objekt kopieren, setzt Amazon S3 das Erstellungsdatum des kopierten Objekts zurück. Sie brauchen keine dieser Werte in Ihrer Kopieranforderung festlegen.

Wenn Sie ein Objekt kopieren, wollen Sie möglicherweise einige der Metadatenwerte aktualisieren. Wenn Ihr Quellobjekt beispielsweise für die Verwendung des S3-Standardspeichers konfiguriert ist, könnten Sie entscheiden, für die Objektkopie S3 Intelligent Tiering zu verwenden. Außerdem könnten Sie entscheiden, einige der benutzerdefinierten Metadatenwerte für das Quellobjekt zu aktualisieren. Wenn Sie entschieden haben, beim Kopieren vom Benutzer des Objekts konfigurierbare Metadaten zu aktualisieren (System oder benutzerdefiniert), müssen Sie explizit alle vom Benutzer konfigurierbaren Metadaten angeben, die im Quellobjekt Ihrer Anforderung vorhanden sind, selbst wenn Sie nur einen der Metadatenwerte ändern.

Weitere Informationen zu Objekt-Metadaten erhalten Sie unter Arbeiten mit Objekt-Metadaten.

Anmerkung
  • Beim Kopieren von Objekten über verschiedene Standorte fallen Bandbreitengebühren an.

  • Wenn das Quellobjekt in S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive archiviert ist, müssen Sie zuerst eine temporäre Kopie wiederherstellen, bevor Sie das Objekt in einen anderen Bucket kopieren können. Weitere Informationen über das Archivieren von Objekten finden Sie unter Übergang in die Speicherklassen S3 Glacier Flexible Retrieval und S3 Glacier Deep Archive (Objektarchivierung).

  • Die Copy-Operation für wiederhergestellte Objekte wird in der Amazon-S3-Konsole für Objekte in der Speicherklasse S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive nicht unterstützt. Verwenden Sie für diese Art von Kopiervorgang die AWS Command Line Interface (AWS CLI), die - AWS SDKs oder die REST-API.

Amazon S3 verschlüsselt alle neuen Objekte, die in einen S3-Bucket kopiert werden, automatisch. Wenn Sie in Ihrer Kopieranforderung keine Verschlüsselungsinformationen angeben, wird die Verschlüsselungseinstellung des Zielobjekts auf die Standardverschlüsselungskonfiguration des Ziel-Buckets festgelegt. Standardmäßig verfügen alle Buckets über eine Grundebene der Verschlüsselungskonfiguration, die eine serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) verwendet. Wenn der Ziel-Bucket über eine Standardverschlüsselungskonfiguration verfügt, die serverseitige Verschlüsselung mit einem AWS Key Management Service (AWS KMS)-Schlüssel (SSE-KMS) oder einem vom Kunden bereitgestellten Verschlüsselungsschlüssel (SSE-C) verwendet, verwendet Amazon S3 den entsprechenden KMS-Schlüssel oder einen vom Kunden bereitgestellten Schlüssel, um die Zielobjektkopie zu verschlüsseln. Wenn Sie beim Kopieren eines Objekts eine andere Verschlüsselungseinstellung für das Zielobjekt verwenden möchten, können Sie festlegen, dass Amazon S3 das Zielobjekt mit einem KMS-Schlüssel, einem von Amazon S3 verwalteten Schlüssel oder einem vom Kunden bereitgestellten Schlüssel verschlüsseln soll. Wenn sich die Verschlüsselungseinstellung in Ihrer Anforderung von der Standardverschlüsselungskonfiguration des Ziel-Buckets unterscheidet, hat die Verschlüsselungseinstellung in Ihrer Anfrage Vorrang. Wenn das Quellobjekt für den Kopiervorgang mithilfe von SSE-C in Amazon S3 gespeichert wird, müssen Sie erforderlichen Verschlüsselungsinformationen in Ihrer Anforderung bereitstellen, damit Amazon S3 das Objekt zum Kopieren entschlüsseln kann. Weitere Informationen finden Sie unter Datenschutz durch Verschlüsselung.

Beim Kopieren von Objekten können Sie einen anderen Prüfsummenalgorithmus für das Objekt verwenden. Unabhängig davon, ob Sie denselben oder einen neuen Algorithmus verwenden, berechnet Amazon S3 einen neuen Prüfsummenwert, nachdem das Objekt kopiert wurde. Amazon S3 kopiert den Wert der Prüfsumme nicht direkt. Der Prüfsummenwert von Objekten, die mit mehrteiligen Uploads geladen wurden, kann sich ändern. Weitere Informationen zum Berechnen der Prüfsumme finden Sie unter Verwenden von Prüfsummen auf Teilebene für mehrteilige Uploads.

Um mehr als ein Amazon-S3-Objekt mit einer einzigen Anforderung zu kopieren, können Sie Amazon-S3-Batch-Vorgänge verwenden. Sie stellen S3 Batch Operations eine Liste von Objekten zur Verfügung, für die Vorgänge ausgeführt werden sollen. S3-Batchoperationen rufen die entsprechende API-Operation auf, um die angegebene Operation auszuführen. Ein einzelner Batch-Vorgangsauftrag kann die angegebene Operation für Milliarden von Objekten ausführen, die Exabytes von Daten enthalten.

Die Funktion „S3-Batchoperationen“ verfolgt den Fortschritt, versendet Benachrichtigungen und speichert einen detaillierten Abschlussbericht zu allen Aktionen. Sie profitieren von einer vollständig verwalteten, prüfbaren und serverlosen Umgebung. Sie können S3-Batchoperationen über die Amazon S3-Konsole, AWS CLI, AWS SDKs oder die REST-API verwenden. Weitere Informationen finden Sie unter Grundlagen von S3-BatchVorgänge.

Anmerkung

Weitere Informationen zur Verwendung der Speicherklasse Amazon S3 Express One Zone mit Verzeichnis-Buckets finden Sie unter Was ist S3 Express One Zone? und Verzeichnis-Buckets. Weitere Informationen zum Kopieren eines Objekts zu einem Verzeichnis-Bucket finden Sie unter Hochladen eines Objekts zu einem Verzeichnis-Bucket.

Ein Objekt kopieren

Verwenden Sie die folgenden Methoden, um ein Objekt zu kopieren.

In der Amazon-S3-Konsole können Sie ein Objekt kopieren oder verschieben. Weitere Informationen finden Sie in den folgenden Verfahren.

Anmerkung
  • Objekte, die mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (SSE-C) verschlüsselt wurden, können nicht mit der S3-Konsole kopiert oder verschoben werden. Um mit SSE-C verschlüsselte Objekte zu kopieren oder zu verschieben, verwenden Sie AWS CLI, AWS SDK oder die Amazon S3-REST-API.

  • Wenn Sie ein Objekt mit der Amazon-S3-Konsole kopieren, müssen Sie die Berechtigung s3:ListAllMyBuckets gewähren. Die Konsole benötigt diese Berechtigung, um den Kopiervorgang zu validieren.

  • Das regionsübergreifende Kopieren AWS KMS verschlüsselter Objekte wird auf der Amazon S3Konsole nicht unterstützt.

Ein Objekt kopieren
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Navigieren Sie zum Amazon-S3-Bucket oder -Ordner, der die Objekte enthält, die Sie kopieren möchten.

  3. Markieren Sie das Kontrollkästchen links neben den Namen der Objekte, die Sie kopieren möchten.

  4. Wählen Sie Actions (Aktionen) und wählen Sie aus der angezeigten Liste der Optionen die Option Copy (Kopieren) aus.

    Sie können auch aus den Optionen oben rechts die Option Copy (Kopieren) auswählen.

  5. Wählen Sie den Zieltyp und das Zielkonto aus. Um den Zielpfad anzugeben, wählen Sie Browse S3 (S3 durchsuchen), navigieren Sie zum Ziel und markieren Sie das Kontrollkästchen links von dem Ziel. Wählen Sie unten rechts Choose destination (Ziel auswählen) aus.

    Geben Sie alternativ den Zielpfad ein.

  6. Wenn Sie die Bucket-Versionierung nicht aktiviert haben, werden Sie möglicherweise aufgefordert, zu bestätigen, dass vorhandene Objekte mit demselben Namen überschrieben werden. Wenn dies in Ordnung ist, markieren Sie das Kontrollkästchen und fahren Sie fort. Wenn Sie alle Versionen von Objekten in diesem Bucket behalten möchten, wählen Sie Enable Bucket Versioning (Bucket-Versionierung aktivieren). Sie können auch die Eigenschaften der Standard-Verschlüsselung und der S3-Objektsperre aktualisieren.

  7. Wählen Sie unter Additional checksums (Weitere Prüfsummen) aus, ob Sie die Objekte mit der vorhandenen Prüfsummenfunktion kopieren oder die vorhandene Prüfsummenfunktion durch eine neue ersetzen möchten. Beim Hochladen der Objekte hatten Sie die Möglichkeit, den Prüfsummenalgorithmus anzugeben, der zur Überprüfung der Datenintegrität verwendet wurde. Beim Kopieren des Objekts haben Sie die Möglichkeit, eine neue Funktion auszuwählen. Wenn Sie ursprünglich keine weitere Prüfsumme angegeben haben, können Sie diesen Abschnitt der Kopieroptionen verwenden, um eine Summe hinzuzufügen.

    Anmerkung

    Selbst wenn Sie dieselbe Prüfsummenfunktion verwenden, kann sich Ihr Prüfsummenwert ändern, wenn Sie das Objekt kopieren und dessen Größe 16 MB überschreitet. Der Prüfsummenwert kann sich aufgrund der Methode ändern, wie Prüfsummen für mehrteilige Uploads berechnet werden. Weitere Informationen dazu, wie sich die Prüfsumme beim Kopieren des Objekts ändern kann, finden Sie unter Verwenden von Prüfsummen auf Teilebene für mehrteilige Uploads.

    Um die Prüfsummenfunktion zu ändern, wählen Sie Replace with a new checksum function (Durch eine neue Prüfsummenfunktion ersetzen) aus. Wählen Sie die neue Prüfsummenfunktion aus dem Feld aus. Wenn das Objekt kopiert wird, wird die neue Prüfsumme mit dem angegebenen Algorithmus berechnet und gespeichert.

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

So verschieben Sie Objekte:
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Navigieren Sie zum Amazon-S3-Bucket oder -Ordner, der die Objekte enthält, die Sie verschieben möchten.

  3. Markieren Sie das Kontrollkästchen links neben den Namen der Objekte, die Sie verschieben möchten.

  4. Wählen Sie Actions (Aktionen) und wählen Sie aus der angezeigten Optionsliste Move (Verschieben).

    Oder wählen Sie Move (Verschieben) aus den Optionen oben rechts.

  5. Um den Zielpfad anzugeben, wählen Sie Browse S3 (S3 durchsuchen), navigieren Sie zum Ziel und markieren Sie das Kontrollkästchen links von dem Ziel. Wählen Sie unten rechts Choose destination (Ziel auswählen) aus.

    Geben Sie alternativ den Zielpfad ein.

  6. Wenn Sie die Bucket-Versionierung nicht aktiviert haben, werden Sie möglicherweise aufgefordert, zu bestätigen, dass vorhandene Objekte mit demselben Namen überschrieben werden. Wenn dies in Ordnung ist, markieren Sie das Kontrollkästchen und fahren Sie fort. Wenn Sie alle Versionen von Objekten in diesem Bucket behalten möchten, wählen Sie Enable Bucket Versioning (Bucket-Versionierung aktivieren). Sie können auch die Eigenschaften der Standard-Verschlüsselung und der Objektsperre aktualisieren.

  7. Wählen Sie unten rechts Move (Verschieben) aus. Amazon S3 verschiebt Ihre Objekte in den Zielordner.

Anmerkung
  • Diese Aktion erstellt eine Kopie aller angegebenen Objekte mit aktualisierten Einstellungen, aktualisiert das Datum der letzten Änderung am angegebenen Speicherort und fügt dem ursprünglichen Objekt eine Löschmarkierung hinzu.

  • Warten Sie beim Verschieben von Ordnern, bis die Verschiebungsaktion abgeschlossen ist, bevor Sie weitere Änderungen für die Ordner ausführen.

  • Diese Aktion aktualisiert Metadaten für Bucket-Versioning, Verschlüsselung, Objektsperre-Funktionen und archivierte Objekte.

Die Beispiele in diesem Abschnitt zeigen, wie Objekte mit bis zu 5 GB in einer einzigen Operation kopiert werden können. Für das Kopieren von Objekten mit mehr als 5 GB müssen Sie die API für mehrteilige Uploads verwenden. Weitere Informationen finden Sie unter Kopieren eines Objekts mit Multipart-Upload.

Java

Das folgende Beispiel kopiert ein Objekt mit AWS SDK for Java in Amazon S3. Anweisungen zum Erstellen und Testen eines funktionierenden Beispiels finden Sie unter Testen der Java-Codebeispiele für Amazon S3.

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.CopyObjectRequest; import java.io.IOException; public class CopyObjectSingleOperation { public static void main(String[] args) throws IOException { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; String sourceKey = "*** Source object key *** "; String destinationKey = "*** Destination object key ***"; try { AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(clientRegion) .build(); // Copy the object into a new object in the same bucket. CopyObjectRequest copyObjRequest = new CopyObjectRequest(bucketName, sourceKey, bucketName, destinationKey); s3Client.copyObject(copyObjRequest); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }
.NET

Im folgenden C#-Beispiel wird die High-Level- verwendet, AWS SDK for .NET um Objekte bis zu einer Größe von 5 GB in einer einzigen Operation zu kopieren. Für Objekte mit mehr als 5 GB müssen Sie das in Kopieren eines Objekts mit Multipart-Upload beschriebene Kopierbeispiel für mehrteilige Uploads verwenden.

In diesem Beispiel wird eine Kopie eines Objekts bis zu einer Größe von 5 GB erstellt. Informationen zur Kompatibilität des Beispiels mit einer bestimmten Version des AWS SDK for .NET und Anweisungen zum Erstellen und Testen eines funktionierenden Beispiels finden Sie unter Ausführen der .NET-Codebeispiele für Amazon S3.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class CopyObjectTest { private const string sourceBucket = "*** provide the name of the bucket with source object ***"; private const string destinationBucket = "*** provide the name of the bucket to copy the object to ***"; private const string objectKey = "*** provide the name of object to copy ***"; private const string destObjectKey = "*** provide the destination object key name ***"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 s3Client; public static void Main() { s3Client = new AmazonS3Client(bucketRegion); Console.WriteLine("Copying an object"); CopyingObjectAsync().Wait(); } private static async Task CopyingObjectAsync() { try { CopyObjectRequest request = new CopyObjectRequest { SourceBucket = sourceBucket, SourceKey = objectKey, DestinationBucket = destinationBucket, DestinationKey = destObjectKey }; CopyObjectResponse response = await s3Client.CopyObjectAsync(request); } catch (AmazonS3Exception e) { Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message); } catch (Exception e) { Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message); } } } }
PHP

Dieses Thema führt Sie durch die Verwendung von Klassen aus Version 3 von , AWS SDK for PHP um ein einzelnes Objekt und mehrere Objekte in Amazon S3 aus einem Bucket in einen anderen oder innerhalb desselben Buckets zu kopieren.

Dieser Abschnitt setzt voraus, dass Sie den Anweisungen für Verwenden von AWS SDK for PHP und Ausführen von PHP-Beispielen folgen und AWS SDK for PHP ordnungsgemäß installiert ist.

Das folgende PHP-Beispiel verdeutlicht die Verwendung der copyObject()-Methode zum Kopieren eines einzelnen Objekts in Amazon S3 sowie die Verwendung eines Aufrufstapels von CopyObject mit der getcommand()-Methode, um mehrere Kopien eines Objekts zu erstellen.

1

Erstellen Sie mit dem Klassenkonstruktor Aws\S3\S3Client eine Instance eines Amazon-S3-Clients.

2

Um mehrere Kopien eines Objekts zu erstellen, führen Sie einen Stapel von Aufrufen der Methode getCommand () des Amazon S3-Clients aus, die von der Klasse Aws\CommandInterface geerbt wird. Sie stellen den CopyObject-Befehl als erstes Argument, sowie ein Array mit dem Quell-Bucket, dem Quellschlüsselnamen, dem Ziel-Bucket und dem Zielschlüsselnamen als zweites Argument bereit.

require 'vendor/autoload.php'; use Aws\CommandPool; use Aws\Exception\AwsException; use Aws\ResultInterface; use Aws\S3\S3Client; $sourceBucket = '*** Your Source Bucket Name ***'; $sourceKeyname = '*** Your Source Object Key ***'; $targetBucket = '*** Your Target Bucket Name ***'; $s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-east-1' ]); // Copy an object. $s3->copyObject([ 'Bucket' => $targetBucket, 'Key' => "$sourceKeyname-copy", 'CopySource' => "$sourceBucket/$sourceKeyname", ]); // Perform a batch of CopyObject operations. $batch = array(); for ($i = 1; $i <= 3; $i++) { $batch[] = $s3->getCommand('CopyObject', [ 'Bucket' => $targetBucket, 'Key' => "{targetKeyname}-$i", 'CopySource' => "$sourceBucket/$sourceKeyname", ]); } try { $results = CommandPool::batch($s3, $batch); foreach ($results as $result) { if ($result instanceof ResultInterface) { // Result handling here } if ($result instanceof AwsException) { // AwsException handling here } } } catch (Exception $e) { // General error handling here }
Python
class ObjectWrapper: """Encapsulates S3 object actions.""" def __init__(self, s3_object): """ :param s3_object: A Boto3 Object resource. This is a high-level resource in Boto3 that wraps object actions in a class-like structure. """ self.object = s3_object self.key = self.object.key
def copy(self, dest_object): """ Copies the object to another bucket. :param dest_object: The destination object initialized with a bucket and key. This is a Boto3 Object resource. """ try: dest_object.copy_from( CopySource={"Bucket": self.object.bucket_name, "Key": self.object.key} ) dest_object.wait_until_exists() logger.info( "Copied object from %s:%s to %s:%s.", self.object.bucket_name, self.object.key, dest_object.bucket_name, dest_object.key, ) except ClientError: logger.exception( "Couldn't copy object from %s/%s to %s/%s.", self.object.bucket_name, self.object.key, dest_object.bucket_name, dest_object.key, ) raise
Ruby

Die folgenden Aufgaben führen Sie durch die Verwendung der Ruby-Klassen für das Kopieren eines Objekts in Amazon S3 aus einem Bucket in einen anderen oder innerhalb desselben Buckets.

1

Verwenden Sie das modularisierte Amazon S3-Gem für Version 3 von AWS SDK for Ruby, fordern Sie „aws-sdk-s3“ an und geben Sie Ihre AWS Anmeldeinformationen an. Weitere Informationen zur Bereitstellung Ihrer Anmeldeinformationen finden Sie in Anfragen unter Verwendung von Anmeldeinformationen von AWS-Konto oder von IAM-Benutzern.

2

Stellen Sie müssen die Anforderungsinformationen bereit, wie beispielsweise den Bucket-Namen, den Quellschlüsselnamen, den Ziel-Bucket-Namen und den Zielschlüssel.

Das folgende Ruby-Codebeispiel demonstriert die oben beschriebenen Aufgaben unter Verwendung der #copy_object-Methode zum Kopieren eines Objekts aus einem Bucket in einen anderen.

require "aws-sdk-s3" # Wraps Amazon S3 object actions. class ObjectCopyWrapper attr_reader :source_object # @param source_object [Aws::S3::Object] An existing Amazon S3 object. This is used as the source object for # copy actions. def initialize(source_object) @source_object = source_object end # Copy the source object to the specified target bucket and rename it with the target key. # # @param target_bucket [Aws::S3::Bucket] An existing Amazon S3 bucket where the object is copied. # @param target_object_key [String] The key to give the copy of the object. # @return [Aws::S3::Object, nil] The copied object when successful; otherwise, nil. def copy_object(target_bucket, target_object_key) @source_object.copy_to(bucket: target_bucket.name, key: target_object_key) target_bucket.object(target_object_key) rescue Aws::Errors::ServiceError => e puts "Couldn't copy #{@source_object.key} to #{target_object_key}. Here's why: #{e.message}" end end # Example usage: def run_demo source_bucket_name = "doc-example-bucket1" source_key = "my-source-file.txt" target_bucket_name = "doc-example-bucket2" target_key = "my-target-file.txt" source_bucket = Aws::S3::Bucket.new(source_bucket_name) wrapper = ObjectCopyWrapper.new(source_bucket.object(source_key)) target_bucket = Aws::S3::Bucket.new(target_bucket_name) target_object = wrapper.copy_object(target_bucket, target_key) return unless target_object puts "Copied #{source_key} from #{source_bucket_name} to #{target_object.bucket_name}:#{target_object.key}." end run_demo if $PROGRAM_NAME == __FILE__

Dieses Beispiel beschreibt, wie ein Objekt mit REST kopiert wird. Weitere Informationen über die REST-API finden Sie unter PUT Object (Copy).

Dieses Beispiel kopiert das flotsam-Objekt aus dem pacific-Bucket in das jetsam-Objekt des atlantic-Buckets, wobei seine Metadaten beibehalten werden.

PUT /jetsam HTTP/1.1 Host: atlantic.s3.amazonaws.com x-amz-copy-source: /pacific/flotsam Authorization: AWS AKIAIOSFODNN7EXAMPLE:ENoSbxYByFA0UGLZUqJN5EUnLDg= Date: Wed, 20 Feb 2008 22:12:21 +0000

Die Signatur wurde aus den folgenden Informationen generiert.

PUT\r\n \r\n \r\n Wed, 20 Feb 2008 22:12:21 +0000\r\n x-amz-copy-source:/pacific/flotsam\r\n /atlantic/jetsam

Amazon S3 gibt die folgende Antwort zurück, die das ETag des Objekts angibt, und wann es zuletzt geändert wurde.

HTTP/1.1 200 OK x-amz-id-2: Vyaxt7qEbzv34BnSu5hctyyNSlHTYZFMWK4FtzO+iX8JQNyaLdTshL0KxatbaOZt x-amz-request-id: 6B13C3C5B34AF333 Date: Wed, 20 Feb 2008 22:13:01 +0000 Content-Type: application/xml Transfer-Encoding: chunked Connection: close Server: AmazonS3 <?xml version="1.0" encoding="UTF-8"?> <CopyObjectResult> <LastModified>2008-02-20T22:13:01</LastModified> <ETag>"7e9c608af58950deeb370c98608ed097"</ETag> </CopyObjectResult>

Sie können auch die AWS Command Line Interface (AWS CLI) verwenden, um ein S3-Objekt zu erstellen. Weitere Informationen finden Sie unter copy-object in der AWS CLI -Befehlsreferenz.

Weitere Informationen zu finden AWS CLI Sie unter Was ist AWS Command Line Interface? im AWS Command Line Interface -Benutzerhandbuch.