Objekte kopieren, verschieben und umbenennen - 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, verschieben und umbenennen

Der CopyObject Vorgang erstellt eine Kopie eines Objekts, das bereits in Amazon S3 gespeichert ist.

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

Mit der CopyObject-Operation können Sie:

  • Erstellen Sie zusätzliche Kopien von Objekten.

  • Benennen Sie Objekte um, indem Sie sie kopieren und die Originale löschen.

  • Kopieren oder verschieben Sie Objekte von einem Bucket in einen anderen, auch quer AWS-Regionen (z. B. von us-west-1 biseu-west-2). Wenn Sie ein Objekt verschieben, kopiert Amazon S3 das Objekt an das angegebene Ziel und löscht dann das Quellobjekt.

    Anmerkung

    Beim Kopieren oder Verschieben von Objekten fallen AWS-Regionen Bandbreitengebühren an. Weitere Informationen finden Sie unter Amazon S3 – Preise.

  • Ändern Sie die Metadaten von Objekten. Jedes Amazon-S3-Objekt hat Metadaten. Bei diesen Metadaten handelt es sich um eine Reihe von Name-Wert-Paaren. Sie können Objektmetadaten festlegen, wenn Sie ein Objekt hochladen. Nachdem Sie das Objekt hochgeladen haben, können Sie die Objektmetadaten nicht mehr ändern. Die einzige Methode, wie Sie Objekt-Metadaten ändern können, ist es, eine Kopie des Objekts anzulegen und die Metadaten festzulegen. Stellen Sie dazu beim Kopiervorgang dasselbe Objekt als Quelle und Ziel ein.

    Einige Objektmetadaten sind Systemmetadaten und andere sind benutzerdefiniert. Sie können einige der Systemmetadaten steuern. Sie können beispielsweise die Speicherklasse und die Art der serverseitigen Verschlüsselung steuern, die für das Objekt verwendet werden sollen. 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 müssen in Ihrer Kopieranforderung keinen dieser systemgesteuerten Metadatenwerte 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.

Archivierte und wiederhergestellte Objekte werden kopiert

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).

Der Kopiervorgang in der Amazon S3 S3-Konsole wird für wiederhergestellte Objekte in den Speicherklassen S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive nicht unterstützt. Um diese wiederhergestellten Objekte zu kopieren, verwenden Sie den AWS Command Line Interface (AWS CLI) AWS SDKs, den oder den Amazon S3 RESTAPI.

Verschlüsselte Objekte werden kopiert

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 haben alle Buckets eine grundlegende Verschlüsselungskonfiguration, die serverseitige Verschlüsselung mit verwalteten Amazon S3 S3-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 Art der Verschlüsselungseinstellung für das Zielobjekt verwenden möchten, können Sie verlangen, 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üsselt. 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 die Kopie mit SSE -C verschlüsselt ist, müssen Sie in Ihrer Anfrage die erforderlichen Verschlüsselungsinformationen angeben, damit Amazon S3 das Objekt zum Kopieren entschlüsseln kann. Weitere Informationen finden Sie unter Datenschutz durch Verschlüsselung.

Verwendung von Prüfsummen beim Kopieren von Objekten

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 mithilfe von 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.

Kopieren mehrerer Objekte in einer einzigen Anfrage

Um mehr als ein Amazon S3 S3-Objekt mit einer einzigen Anfrage zu kopieren, können Sie auch S3 Batch Operations verwenden. Sie stellen S3 Batch Operations eine Liste von Objekten zur Verfügung, für die Vorgänge ausgeführt werden sollen. S3 Batch Operations ruft 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 Batch Operations über die Amazon S3 S3-Konsole AWS CLI, AWS SDKs, oder verwenden RESTAPI. Weitere Informationen finden Sie unter Grundlagen von S3-BatchVorgänge.

Objekte in Verzeichnis-Buckets kopieren

Hinweise zum Kopieren eines Objekts in einen Verzeichnis-Bucket finden Sie unterHochladen eines Objekts zu einem Verzeichnis-Bucket. Informationen zur Verwendung der Amazon S3 Express One Zone-Speicherklasse mit Verzeichnis-Buckets finden Sie unter Was ist S3 Express One Zone? undVerzeichnis-Buckets.

Ein Objekt kopieren

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

Anmerkung
  • Wenn Sie ein Objekt mithilfe der Amazon S3 S3-Konsole kopieren möchten, benötigen Sie die s3:ListAllMyBuckets entsprechende Genehmigung. Die Konsole benötigt diese Berechtigung, um den Kopiervorgang zu validieren. Richtlinien, die diese Berechtigung gewähren, finden Sie beispielsweise unterBeispiele für identitätsbasierte Richtlinien für Amazon S3.

    Wenn Sie ein Objekt mit benutzerdefinierten Tags kopieren, benötigen Sie auch die s3:GetObjectTagging entsprechende Berechtigung. Wenn Sie ein Objekt kopieren, das keine benutzerdefinierten Tags hat, aber eine Größe von mehr als 16 MB hat, benötigen Sie auch die s3: GetObjectTagging -Berechtigung.

    Wenn die Ziel-Bucket-Richtlinie die s3:GetObjectTagging Aktion ablehnt, wird das Objekt ohne die benutzerdefinierten Tags kopiert, und Sie erhalten eine Fehlermeldung.

  • 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

  • Regionsübergreifendes Kopieren von Objekten, die mit SSE — verschlüsselt sind, KMS wird von der Amazon S3 S3-Konsole nicht unterstützt. Verwenden Sie Amazon S3, um Objekte, die mit SSE — verschlüsselt sind AWS CLI AWS SDK, KMS über Regionen hinweg zu kopieren RESTAPI.

Ein Objekt 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 und dann den Tab Buckets für allgemeine Zwecke aus. 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 im Menü Aktionen aus der daraufhin angezeigten Optionsliste die Option Kopieren aus.

  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.

Die Beispiele in diesem Abschnitt zeigen, wie Objekte mit bis zu 5 GB in einer einzigen Operation kopiert werden können. Um Objekte zu kopieren, die größer als 5 GB sind, müssen Sie einen mehrteiligen Upload 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 Arbeitsbeispiels finden Sie unter Erste Schritte im AWS SDK for Java Entwicklerhandbuch.

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 High-Level verwendet, AWS SDK for .NET um Objekte mit einer Größe von bis zu 5 GB in einem einzigen Vorgang 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 zum Einrichten und Ausführen der Codebeispiele finden Sie unter Erste Schritte mit dem AWS SDK for. NETim AWS SDKfür. NETLeitfaden für Entwickler.

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 innerhalb von Amazon S3, von einem Bucket in einen anderen oder innerhalb desselben Buckets zu kopieren.

Weitere Informationen zu AWS SDK for Ruby API finden Sie unter AWS SDKfor Ruby — Version 2.

Das folgende PHP Beispiel veranschaulicht die Verwendung der copyObject() Methode zum Kopieren eines einzelnen Objekts innerhalb von Amazon S3. Es zeigt auch, wie Sie mehrere Kopien eines Objekts erstellen können, indem Sie eine Reihe von Aufrufen CopyObject mit der getcommand() Methode verwenden.

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 eine Reihe von Aufrufen an die Amazon S3 getCommand()S3-Client-Methode aus, die von der Aws\CommandInterfaceKlasse 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, um ein Objekt in Amazon S3 von einem Bucket in einen anderen oder innerhalb desselben Buckets zu kopieren.

1

Verwenden Sie das modularisierte Amazon S3 S3-Gem für Version 3 von AWS SDK for Rubyaws-sdk-s3, fordern Sie an und geben Sie Ihre AWS Anmeldeinformationen ein. Weitere Informationen zur Bereitstellung Ihrer Anmeldeinformationen finden Sie in Anfragen mit AWS-Konto unseren IAM-Benutzeranmeldedaten stellen.

2

Geben Sie die Anforderungsinformationen wie den Quell-Bucket-Namen, den Quellschlüsselnamen, den Ziel-Bucket-Namen und den Zielschlüssel an.

Das folgende Ruby Codebeispiel demonstriert die vorherigen Aufgaben, indem die #copy_object Methode verwendet wird, um ein Objekt von einem Bucket in einen anderen zu kopieren.

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 mithilfe von Amazon S3 kopiert wird RESTAPI. Weitere Informationen über die finden REST API Sie unter CopyObject.

Dieses Beispiel kopiert das flotsam-Objekt aus dem amzn-s3-demo-bucket1-Bucket in das jetsam-Objekt des amzn-s3-demo-bucket2-Buckets, wobei seine Metadaten beibehalten werden.

PUT /jetsam HTTP/1.1 Host: amzn-s3-demo-bucket2.s3.amazonaws.com x-amz-copy-source: /amzn-s3-demo-bucket1/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:/amzn-s3-demo-bucket1/flotsam\r\n /amzn-s3-demo-bucket2/jetsam

Amazon S3 gibt die folgende Antwort zurück, in ETag der das Objekt und das Datum der letzten Änderung angegeben sind.

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 das AWS Command Line Interface (AWS CLI) verwenden, um ein S3-Objekt zu kopieren. Weitere Informationen finden Sie unter copy-object in der Referenz zum AWS CLI -Befehl.

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

So verschieben Sie ein Objekt

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

Anmerkung
  • Wenn Sie ein Objekt mit benutzerdefinierten Tags verschieben, benötigen Sie die entsprechende s3:GetObjectTagging Genehmigung. Wenn Sie ein Objekt verschieben, das keine benutzerdefinierten Tags hat, aber eine Größe von mehr als 16 MB hat, benötigen Sie auch die s3: GetObjectTagging -Berechtigung.

    Wenn die Ziel-Bucket-Richtlinie die s3:GetObjectTagging Aktion ablehnt, wird das Objekt ohne die benutzerdefinierten Tags verschoben, und Sie erhalten eine Fehlermeldung.

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

  • Warten Sie beim Verschieben von Ordnern, bis der Verschiebevorgang abgeschlossen ist, bevor Sie weitere Änderungen an den Ordnern vornehmen.

  • Sie können S3-Zugriffspunkt-Aliase nicht als Quelle oder Ziel für Move-Operationen in der Amazon S3 S3-Konsole verwenden.

So verschieben Sie ein Objekt
  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 und dann den Tab Buckets für allgemeine Zwecke aus. 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 im Menü Aktionen die Option Verschieben aus.

  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.

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

Sie können auch die AWS Command Line Interface (AWS CLI) verwenden, um ein S3-Objekt zu verschieben. Weitere Informationen finden Sie unter mv in der Referenz zum AWS CLI -Befehl.

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

Um ein Objekt umzubenennen

Gehen Sie wie folgt vor, um ein Objekt umzubenennen.

Anmerkung
  • Beim Umbenennen eines Objekts wird eine Kopie des Objekts mit einem neuen Datum der letzten Änderung erstellt. Anschließend wird dem ursprünglichen Objekt eine Löschmarke hinzugefügt.

  • Bucket-Einstellungen für die Standardverschlüsselung werden automatisch auf jedes angegebene unverschlüsselte Objekt angewendet.

  • Sie können die Amazon S3 S3-Konsole nicht verwenden, um Objekte mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (SSE-C) umzubenennen. Um mit SSE -C verschlüsselte Objekte umzubenennen, verwenden Sie AWS CLI AWS SDKs, oder Amazon S3, REST API um diese Objekte mit neuen Namen zu kopieren.

  • Wenn dieser Bucket die vom Bucket Owner erzwungene Einstellung für S3 Object Ownership verwendet, werden Objektzugriffskontrolllisten (ACLs) nicht kopiert.

  • Wenn Sie ein Objekt umbenennen, das über benutzerdefinierte Tags verfügt, benötigen Sie die entsprechende Genehmigung. s3:GetObjectTagging Wenn Sie ein Objekt umbenennen, das keine benutzerdefinierten Tags hat, aber eine Größe von mehr als 16 MB hat, benötigen Sie auch die s3: -Berechtigung. GetObjectTagging

    Wenn die Ziel-Bucket-Richtlinie die s3:GetObjectTagging Aktion ablehnt, wird das Objekt umbenannt, aber die benutzerdefinierten Tags werden aus dem Objekt entfernt, und Sie erhalten eine Fehlermeldung.

Um ein Objekt umzubenennen
  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 und dann den Tab Buckets für allgemeine Zwecke aus. Navigieren Sie zu dem Amazon S3 S3-Bucket oder -Ordner, der das Objekt enthält, das Sie umbenennen möchten.

  3. Aktivieren Sie das Kontrollkästchen links neben dem Namen des Objekts, das Sie umbenennen möchten.

  4. Wählen Sie im Menü Aktionen die Option Objekt umbenennen.

  5. Geben Sie im Feld Neuer Objektname den neuen Namen für das Objekt ein.

  6. Wählen Sie in der unteren rechten Ecke die Option Änderungen speichern aus. Amazon S3 benennt Ihr Objekt um.