Abrufen von Replikationsstatusinformationen - Amazon Simple Storage Service

Willkommen im neuen Amazon-S3-Benutzerhandbuch! Das Amazon-S3-Benutzerhandbuch kombiniert Informationen und Anweisungen aus den drei eingestellten Handbüchern: Amazon-S3-Entwicklerhandbuch, Benutzerhandbuch der Amazon-S3-Konsole und Amazon S3 – Handbuch Erste Schritte.

Abrufen von Replikationsstatusinformationen

Der Replikationsstatus hilft Ihnen, den aktuellen Status eines derzeit replizierten Objekts zu bestimmen. Der Replikationsstatus eines Quellobjekts gibt entweder PENDING, COMPLETED oder FAILED zurück. Der Replikationsstatus eines Replikats gibt REPLICA zurück.

Übersicht über den Replikationsstatus

Bei der Replikation haben Sie einen Quell-Bucket, auf dem Sie die Replikation und das Ziel konfigurieren, an dem Amazon S3 Objekte repliziert. Wenn Sie ein Objekt (mit GET Objekt) oder Objektmetadaten (mit HEAD Objekt) von diesen Buckets anfordern, gibt Amazon S3 den Header x-amz-replication-status wie folgt in der Antwort zurück:

  • Wenn Sie ein Objekt aus dem Quell-Bucket anfordern, gibt Amazon S3 den Header x-amz-replication-status zurück, wenn das Objekt in der Anforderung für die Replikation geeignet ist.

    Nehmen wir beispielsweise an, dass Sie in Ihrer Replikationskonfiguration das Objektpräfix TaxDocs angeben, um Amazon S3 anzuweisen, nur Objekte mit dem Schlüsselnamenpräfix TaxDocs zu replizieren. Alle Objekte mit diesem Schlüsselnamenpräfix, die Sie hochladen, z. B. TaxDocs/document1.pdf, werden repliziert. Für Objektanforderungen mit diesem Schlüsselnamenpräfix gibt Amazon S3 den Header x-amz-replication-status mit einem der folgenden Werte für den Replikationsstatus des Objekts zurück: PENDING, COMPLETED oder FAILED.

    Anmerkung

    Wenn nach dem Hochladen eines Objekts die Objektreplikation fehlschlägt, können Sie die fehlgeschlagene Replikation nicht erneut durchzuführen versuchen. Sie müssen das Objekt erneut hochladen. Bei Problemen wie fehlenden Replikationsrollen-Berechtigungen, AWS KMS-Berechtigungen oder Bucket-Berechtigungen gehen Objekte in den Status FAILED über. Bei temporären Fehlern, z. B. wenn ein Bucket oder eine Region nicht verfügbar ist, geht der Replikationsstatus nicht in FAILED über, sondern verbleibt bei PENDING. Wenn die Ressource wieder online ist, setzt S3 die Replikation dieser Objekte fort.

  • Wenn Sie ein Objekt aus einem Ziel-Bucket anfordern und es sich bei dem Objekt Ihrer Anforderung um ein Replikat handelt, das Amazon S3 erstellt hat, gibt Amazon S3 den Header x-amz-replication-status mit dem Wert REPLICA zurück.

Anmerkung

Bevor Sie ein Objekt aus einem Quell-Bucket löschen, bei dem die Replikation aktiviert ist, sollten Sie den Replikationsstatus des Objekts überprüfen, um sicherzustellen, dass das Objekt repliziert wurde.

Wenn die Lebenszykluskonfiguration auf dem Quell-Bucket aktiviert ist, setzt Amazon S3 alle Lebenszyklusaktionen aus, bis der Status des Objekts als COMPLETED oder FAILED gekennzeichnet wird.

Replikationsstatus bei einer Replikation auf mehrere Ziel-Buckets

Wenn Sie Objekte in mehrere Ziel-Buckets replizieren, verhält sich der Header x-amz-replication-status anders. Der Header des Quellobjekts gibt den Wert COMPLETED nur zurück, wenn die Replikation in alle Ziele erfolgreich ist. Der Header bleibt auf dem Wert PENDING, bis die Replikation für alle Ziele abgeschlossen ist. Wenn die Replikation bei einem oder mehreren Zielen fehlschlägt, liefert der Header FAILED.

Replikationsstatus, wenn die Synchronisierung von Amazon S3-Replikatänderungen aktiviert ist

Wenn in Ihren Replikationsregeln die Synchronisierung von Amazon S3 Replikatänderungen aktiviert ist, können Replikate andere Status als REPLICA melden. Wenn Metadatenänderungen gerade repliziert werden, liefert der Header x-amz-replication-status PENDING. Wenn die Synchronisierung von Replikatänderungen die Metadaten nicht replizieren kann, liefert der Header FAILED. Wenn Metadaten korrekt repliziert werden, geben die Replikate den Header REPLICA zurück.

Finden des Replikationsstatus

Verwenden Sie das Amazon S3-Bestandstool, um den Replikationsstatus der Objekte in einem Bucket abzurufen. Amazon S3 sendet eine CSV-Datei an den Ziel-Bucket, den Sie in der Bestandskonfiguration angeben. Sie können auch Amazon Athena verwenden, um den Replikationsstatus im Bestandsbericht abzufragen. Weitere Informationen zu Amazon S3 inventory finden Sie unter Amazon S3 inventory.

Sie können den Status der Objektreplikation auch über die Konsole, die AWS-Befehlszeilenschnittstelle (AWS-CLI) oder das AWS-SDK ermitteln.

In der S3-Konsole können Sie den Replikationsstatus für ein Objekt auf der Objektseite Details unter Objektverwaltungsübersichtanzeigen.

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

  2. Wählen Sie in der Liste Buckets den Namen des Buckets aus.

  3. Wählen Sie in der Liste Objekte den Objektnamen aus.

    Die Objektseite Details wird geöffnet.

  4. Unter Objektverwaltungsübersichtsehen Sie den Replikationsstatus.

Verwenden Sie den Befehl head-object, um Objektmetadaten abzurufen.

aws s3api head-object --bucket source-bucket --key object-key --version-id object-version-id

Der Befehl gibt Informationen zu Objektmetadaten, einschließlich des ReplicationStatus, zurück, wie in der folgenden Beispielantwort dargestellt:

{ "AcceptRanges":"bytes", "ContentType":"image/jpeg", "LastModified":"Mon, 23 Mar 2015 21:02:29 GMT", "ContentLength":3191, "ReplicationStatus":"COMPLETED", "VersionId":"jfnW.HIMOfYiD_9rGbSkmroXsFj3fqZ.", "ETag":"\"6805f2cfc46c0f04559748bb039d69ae\"", "Metadata":{ } }

Die folgenden Codefragmente rufen den Replikationsstatus mit dem AWS SDK for Java bzw. dem AWS SDK for .NET ab.

Java
GetObjectMetadataRequest metadataRequest = new GetObjectMetadataRequest(bucketName, key); ObjectMetadata metadata = s3Client.getObjectMetadata(metadataRequest); System.out.println("Replication Status : " + metadata.getRawMetadataValue(Headers.OBJECT_REPLICATION_STATUS));
.NET
GetObjectMetadataRequest getmetadataRequest = new GetObjectMetadataRequest { BucketName = sourceBucket, Key = objectKey }; GetObjectMetadataResponse getmetadataResponse = client.GetObjectMetadata(getmetadataRequest); Console.WriteLine("Object replication status: {0}", getmetadataResponse.ReplicationStatus);