Erstellen eines S3-Batch-Vorgangsauftrags - 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.

Erstellen eines S3-Batch-Vorgangsauftrags

Mit S3 Batch Operations können Sie umfangreiche Stapelvorgänge für eine Liste bestimmter Amazon-S3-Objekte durchführen. In diesem Abschnitt werden die Informationen beschrieben, die Sie zum Erstellen eines S3-Batch-Vorgangsauftrags benötigen, sowie die Ergebnisse einer CreateJob-Anforderung. Es enthält auch Anweisungen zum Erstellen eines Batch Operations-Jobs mithilfe der Amazon S3 S3-Konsole, AWS Command Line Interface (AWS CLI) und AWS SDK for Java.

Wenn Sie einen S3-Batchvorgangs-Auftrag erstellen, können Sie einen Abschlussbericht für alle oder nur für die fehlgeschlagenen Aufträge anfordern. Sofern mindestens eine Aufgabe erfolgreich aufgerufen wurde, generiert S3 Batch Operations einen Bericht für abgeschlossene, fehlgeschlagene oder abgebrochene Aufträge. Weitere Informationen finden Sie unter Beispiele: Abschlussberichte zu S3-BatchVorgänge.

Das folgende Video zeigt eine kurze Demonstration, wie ein Batch-Operations-Auftrag mit der Amazon-S3-Konsole erstellt wird .

Batch-Vorgangsauftrag-Anforderungselemente

Um einen S3-Batch-Vorgangsauftrag zu erstellen, müssen Sie die folgenden Informationen angeben:

Operation

Geben Sie die Operation an, die S3-Batch-Vorgänge für die Objekte im Manifest ausführen soll. Jeder Operationstyp akzeptiert Parameter, die für diesen Vorgang spezifisch sind. Mit Batch Operations können Sie eine Operation in großen Mengen ausführen, mit den gleichen Ergebnissen, als ob Sie diese Operation one-by-one für jedes Objekt ausgeführt hätten.

Manifest

Das Manifest ist eine Liste aller Objekte, für die S3 Batch Operations die festgelegte Aktion ausführen soll. Sie können die folgenden Verfahren verwenden, um ein Manifest für einen Batch-Operations-Auftrag anzugeben:

  • Erstellen Sie manuell Ihre eigene benutzerdefinierte, CSV formatierte Objektliste.

  • Wählen Sie einen vorhandenen CSV Katalogisieren und Analysieren Ihrer Daten mit S3 Inventory -formatierten Bericht aus.

  • Weisen Sie Batch Operations an, automatisch ein Manifest auf der Grundlage von Objektfilterkriterien zu generieren, die Sie bei der Erstellung Ihres Auftrags angeben. Diese Option ist für Batch-Replikationsaufträge verfügbar, die Sie in der Amazon S3-Konsole erstellen, oder für jeden Auftragstyp, den Sie mithilfe von AWS CLI AWS SDKs, oder Amazon S3 erstellen RESTAPI.

Anmerkung
  • Unabhängig davon, wie Sie Ihr Manifest angeben, muss die Liste selbst in einem Allzweck-Bucket gespeichert werden. Batch Operations kann keine vorhandenen Manifeste aus Verzeichnis-Buckets importieren (oder generierte Manifeste in Verzeichnis-Buckets speichern). Im Manifest beschriebene Objekte können jedoch in Verzeichnis-Buckets gespeichert werden. Weitere Informationen finden Sie unter Verzeichnis-Buckets.

  • Wenn sich die Objekte in Ihrem Manifest in einem versionierten Bucket befinden, weist die Angabe der Version IDs für die Objekte Batch Operations an, den Vorgang für eine bestimmte Version auszuführen. Wenn keine Version IDs angegeben ist, führt Batch Operations den Vorgang mit der neuesten Version der Objekte aus. Wenn Ihr Manifest ein Versions-ID-Feld enthält, müssen Sie eine Versions-ID für alle Objekte im Manifest angeben.

Weitere Informationen finden Sie unter Angeben eines Manifests.

Priorität

Mit Auftragsprioritäten können Sie angeben, welche relative Priorität dieser Auftrag gegenüber den anderen in Ihrem Konto ausgeführten Aufträgen besitzt. Eine höhere Nummer bedeutet eine höhere Priorität.

Auftragsprioritäten sind nur in Beziehung zu den für andere Aufträge in demselben Konto und in der derselben Region festgelegten Prioritäten bedeutsam. Sie können wählen, welches Nummerierungssystem für Sie funktioniert. Beispielsweise können Sie allen Restore (RestoreObject) -Aufträgen die Priorität 1, allen Copy (CopyObject) -Aufträgen die Priorität 2 und allen Replace-Zugriffskontrolllisten (ACLs) (PutObjectAcl) -Aufträgen die Priorität 3 zuweisen.

S3 Batch Operations priorisiert Aufträge gemäß den Prioritätszahlen, garantiert aber keine strikte Sortierung. Daher sind Auftrags-Prioritäten nicht dazu geeignet, sicherzustellen, dass ein Auftrag vor einem anderen Auftrag gestartet oder beendet wird. Wenn Sie eine strikte Sortierung gewährleisten möchten, müssen Sie den Abschluss eines Auftrags abwarten, bevor Sie den nächsten starten.

RoleArn

Geben Sie eine AWS Identity and Access Management (IAM) Rolle an, um den Job auszuführen. Die IAM Rolle, die Sie verwenden, muss über ausreichende Berechtigungen verfügen, um den im Job angegebenen Vorgang auszuführen. Um beispielsweise einen CopyObject Job auszuführen, muss die IAM Rolle über die s3:GetObject Berechtigung für den Quell-Bucket und die s3:PutObject Berechtigung für den Ziel-Bucket verfügen. Außerdem braucht die Rolle die Berechtigungen, das Manifest zu lesen und den Auftragsabschlussbericht zu schreiben.

Weitere Informationen zu IAM IAMRollen finden Sie im IAMBenutzerhandbuch unter Rollen.

Weitere Informationen zu Amazon-S3-Berechtigungen finden Sie unter Politische Maßnahmen für Amazon S3.

Anmerkung

Batch-Operations-Aufträge, die Aktionen für Verzeichnis-Buckets ausführen, erfordern bestimmte Berechtigungen. Weitere Informationen finden Sie unter AWS Identity and Access Management (IAM) für S3 Express One Zone.

Bericht

Geben Sie an, ob S3-Batch-Vorgänge einen Abschlussbericht erstellen soll. Wenn Sie einen Auftragsabschlussbericht anfordern, müssen Sie auch die Parameter für den Bericht in diesem Element angeben. Die notwendigen Informationen umfassen:

  • Den Bucket, in dem der Bericht gespeichert werden soll

    Anmerkung

    Der Bericht muss in einem Allzweck-Bucket gespeichert werden. Batch Operations kann Berichte nicht in Verzeichnis-Buckets speichern. Weitere Informationen finden Sie unter Verzeichnis-Buckets.

  • Das Format des Berichts

  • Ob der Bericht die Details aller oder nur fehlgeschlagener Aufgaben enthält

  • Eine optionale Präfix-Zeichenfolge

Anmerkung

Abschlussberichte werden immer mit serverseitiger Verschlüsselung mit verwalteten Amazon S3 S3-Schlüsseln (SSE-S3) verschlüsselt.

Markierungen (optional)

Sie können den Zugriff auf Ihre S3-Batch-Vorgänge-Aufträge kennzeichnen und steuern, indem Sie Markierungen hinzufügen. Sie können Tags verwenden, um zu identifizieren, wer für einen Batch-Operations-Auftrag verantwortlich ist, oder um zu steuern, wie Benutzer mit einzelnen Batch-Operations-Aufträgen interagieren. Das Vorhandensein von Aufgabe-Markierungen kann einem Benutzer die Möglichkeit gewähren oder einschränken, eine Aufgabe abzubrechen, eine Aufgabe im Bestätigungsstatus zu aktivieren oder die Prioritätsstufe einer Aufgabe zu ändern. Beispielsweise können Sie einem Benutzer die Berechtigung zum Aufrufen des CreateJob-Vorgangs erteilen, vorausgesetzt, der Auftrag wird mit dem Tag "Department=Finance" erstellt.

Sie können Aufträge mit bereits zugeordneten Markierungen erstellen und Sie können bereits erstellten Aufträgen nachträglich Markierungen hinzufügen.

Weitere Informationen finden Sie unter Steuern von Zugriffs- und Labeling-Aufträgen mithilfe von Markierungen.

Description (optional)

Um Ihren Auftrag zu verfolgen und zu überwachen, können Sie auch eine Beschreibung von bis zu 256 Zeichen angeben. Amazon S3 enthält diese Beschreibung immer dann, wenn Informationen über einen Auftrag zurückgegeben oder Auftragsdetails auf der Amazon-S3-Konsole angezeigt werden. So können Sie Aufträge ganz einfach nach den ihnen zugewiesenen Beschreibungen sortieren und filtern. Beschreibungen müssen nicht eindeutig sein, sodass Sie Beschreibungen auch als Kategorien (z. B. "Wöchentliche Aufträge zum Kopieren von Protokollen") verwenden können, um Gruppen ähnlicher Aufträge nachzuverfolgen.

Angeben eines Manifests

Ein Manifest ist ein Amazon-S3-Objekt, das Objektschlüssel enthält, die Amazon S3 bearbeiten soll. Sie können ein Manifest mit einer der folgenden Methoden bereitstellen:

  • Erstellen Sie eine neue Manifestdatei manuell.

  • Verwenden Sie ein vorhandenes Manifest.

  • Weisen Sie Batch Operations an, automatisch ein Manifest auf der Grundlage von Objektfilterkriterien zu generieren, die Sie bei der Erstellung Ihres Auftrags angeben. Diese Option ist für Batch-Replikationsaufträge verfügbar, die Sie in der Amazon S3-Konsole erstellen, oder für jeden Auftragstyp, den Sie mithilfe von AWS CLI AWS SDKs, oder Amazon S3 erstellen RESTAPI.

Anmerkung
  • Amazon S3 Batch Operations unterstützt keine regionsübergreifende Manifestgenerierung.

  • Unabhängig davon, wie Sie Ihr Manifest angeben, muss die Liste selbst in einem Allzweck-Bucket gespeichert werden. Batch Operations kann keine vorhandenen Manifeste aus Verzeichnis-Buckets importieren (oder generierte Manifeste in Verzeichnis-Buckets speichern). Im Manifest beschriebene Objekte können jedoch in Verzeichnis-Buckets gespeichert werden. Weitere Informationen finden Sie unter Verzeichnis-Buckets.

Erstellen einer Manifestdatei

Um eine Manifestdatei manuell zu erstellen, geben Sie den Manifest-Objektschlüssel ETag (Entity-Tag) und die optionale Versions-ID in einer CSV -formatierten Liste an. Der Inhalt des Manifests muss -codiert sein. URL

Standardmäßig verwendet Amazon S3 automatisch serverseitige Verschlüsselung mit verwalteten Amazon S3 S3-Schlüsseln (SSE-S3), um ein Manifest zu verschlüsseln, das in einen Amazon S3 S3-Bucket hochgeladen wird. Manifeste, die serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) verwenden, werden nicht unterstützt. Manifeste, die serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) -Schlüsseln (SSE-KMS) verwenden, werden nur unterstützt, wenn Sie Inventarberichte im -Format verwendenCSV. Die Verwendung eines manuell erstellten Manifests mit AWS KMS wird nicht unterstützt.

Ihr Manifest muss den Bucket-Namen, den Objektschlüssel und (optional) die Objektversion enthalten. Sämtliche anderen Felder in dem Manifest werden nicht von S3-Batch-Vorgänge verwendet.

Anmerkung

Wenn sich die Objekte in Ihrem Manifest in einem versionierten Bucket befinden, weist die Angabe der Version IDs für die Objekte Batch Operations an, den Vorgang für eine bestimmte Version auszuführen. Wenn keine Version IDs angegeben ist, führt Batch Operations den Vorgang mit der neuesten Version der Objekte aus. Wenn Ihr Manifest ein Versions-ID-Feld enthält, müssen Sie eine Versions-ID für alle Objekte im Manifest angeben.

Im Folgenden finden Sie ein Beispiel für ein Manifest im CSV Format ohne VersionIDs.

amzn-s3-demo-bucket1,objectkey1 amzn-s3-demo-bucket1,objectkey2 amzn-s3-demo-bucket1,objectkey3 amzn-s3-demo-bucket1,photos/jpgs/objectkey4 amzn-s3-demo-bucket1,photos/jpgs/newjersey/objectkey5 amzn-s3-demo-bucket1,object%20key%20with%20spaces

Das Folgende ist ein Beispiel für ein Manifest in einem CSV Format, das die Version enthältIDs.

amzn-s3-demo-bucket1,objectkey1,PZ9ibn9D5lP6p298B7S9_ceqx1n5EJ0p amzn-s3-demo-bucket1,objectkey2,YY_ouuAJByNW1LRBfFMfxMge7XQWxMBF amzn-s3-demo-bucket1,objectkey3,jbo9_jhdPEyB4RrmOxWS0kU0EoNrU_oI amzn-s3-demo-bucket1,photos/jpgs/objectkey4,6EqlikJJxLTsHsnbZbSRffn24_eh5Ny4 amzn-s3-demo-bucket1,photos/jpgs/newjersey/objectkey5,imHf3FAiRsvBW_EHB8GOu.NHunHO1gVs amzn-s3-demo-bucket1,object%20key%20with%20spaces,9HkPvDaZY5MVbMhn6TMn1YTb5ArQAo3w

Angeben einer vorhandenen Manifestdatei

Sie können ein Manifest in einer Auftragserstellungsanforderung in einem der beiden folgenden Formate erstellen:

  • Amazon S3 S3-Inventarbericht — Muss ein Amazon S3 S3-Inventarbericht CSV im -Format sein. Sie müssen die manifest.json-Datei angeben, die mit dem Bestandsbericht verknüpft ist. Weitere Informationen zu Bestandsberichten finden Sie unter Katalogisieren und Analysieren Ihrer Daten mit S3 Inventory. Wenn der Inventarbericht eine Version enthältIDs, arbeitet S3 Batch Operations mit den spezifischen Objektversionen.

    Anmerkung
    • S3 Batch Operations unterstützt CSV Inventarberichte, die mit SSE - verschlüsselt sindKMS.

    • Wenn Sie ein mit SSE — verschlüsseltes Inventarberichtsmanifest einreichenKMS, muss Ihre IAM Richtlinie die Berechtigungen "kms:Decrypt" und "kms:GenerateDataKey" für das manifest.json Objekt und alle zugehörigen CSV Datendateien enthalten.

  • CSVDatei — Jede Zeile in der Datei muss den Bucket-Namen, den Objektschlüssel und optional die Objektversion enthalten. Objektschlüssel müssen URL -kodiert sein, wie in den folgenden Beispielen gezeigt. Das Manifest muss entweder die Version IDs für alle Objekte enthalten oder die Version für alle Objekte weglassen. IDs Weitere Hinweise zum CSV Manifestformat finden Sie unter JobManifestSpecin der Amazon Simple Storage Service API Reference.

    Anmerkung

    S3 Batch Operations unterstützt keine CSV Manifestdateien, die mit SSE - verschlüsselt sindKMS.

Wichtig

Wenn Sie ein manuell erstelltes Manifest und einen versionierten Bucket verwenden, empfehlen wir Ihnen, die Version IDs für die Objekte anzugeben. Wenn Sie einen Auftrag erstellen, analysiert S3-Batch-Vorgänge das gesamte Manifest, bevor Sie den Auftrag ausführen. Es wird jedoch kein „Snapshot“ des Bucket-Zustands aufgenommen.

Da Manifeste Milliarden von Objekten enthalten können, kann die Ausführung von Aufträgen längere Zeit dauern, was sich darauf auswirken kann, für welche Version eines Objekts der Auftrag durchgeführt wird. Angenommen, Sie überschreiben ein Objekt mit einer neuen Version, während ein Auftrag ausgeführt wird, und Sie haben keine Versions-ID für dieses Objekt angegeben. In diesem Fall führt Amazon S3 den Vorgang auf der neuesten Version des Objekts durch, und nicht auf der Version, die galt, als Sie den Auftrag erstellten. Die einzige Möglichkeit, dieses Verhalten zu vermeiden, besteht darin, die Version IDs für die Objekte anzugeben, die im Manifest aufgeführt sind.

Automatisches Generieren eines Manifests

Sie können Amazon S3 Batch Operations anweisen, automatisch ein Manifest auf der Grundlage von Objektfilterkriterien zu generieren, die Sie bei der Erstellung Ihres Auftrags angeben. Diese Option ist für Batch-Replikationsaufträge verfügbar, die Sie in der Amazon S3-Konsole erstellen, oder für jeden Auftragstyp, den Sie mithilfe von AWS CLI AWS SDKs, oder Amazon S3 erstellen RESTAPI. Weitere Informationen zur Batch-Replikationen finden Sie unter Replizieren vorhandener Objekte mit Batch Replication.

Um ein Manifest automatisch zu generieren, geben Sie im Rahmen Ihrer Anforderung zur Auftragserstellung die folgenden Elemente an:

  • Informationen über den Bucket, der Ihre Quellobjekte enthält, einschließlich des Bucket-Besitzers und des Amazon-Ressourcennamens (ARN)

  • Informationen zur Manifestausgabe, einschließlich eines Flags zum Erstellen einer Manifestdatei, des Besitzers des Ausgabe-BucketsARN, des Präfixes, des Dateiformats und des Verschlüsselungstyps

  • Optionale Kriterien zum Filtern von Objekten nach Erstellungsdatum, Schlüsselnamen, Größe und Speicherklasse. Bei Replikationsaufträgen können Sie auch Tags verwenden, um Objekte zu filtern.

Objektfilterkriterien

Um die Liste der Objekte zu filtern, die in ein automatisch generiertes Manifest aufgenommen werden sollen, können Sie die folgenden Kriterien angeben. Weitere Informationen finden Sie unter JobManifestGeneratorFilterin der Amazon S3 API S3-Referenz.

CreatedAfter

Falls angegeben, enthält das generierte Manifest nur Quell-Bucket-Objekte, die nach diesem Zeitpunkt erstellt wurden.

CreatedBefore

Falls angegeben, enthält das generierte Manifest nur Quell-Bucket-Objekte, die vor diesem Zeitpunkt erstellt wurden.

EligibleForReplication

Falls angegeben, enthält das generierte Manifest nur Objekte, wenn sie gemäß der Replikationskonfiguration im Quell-Bucket für die Replikation in Frage kommen.

KeyNameConstraint

Falls angegeben, enthält das generierte Manifest nur Quell-Bucket-Objekte, deren Objektschlüssel den für MatchAnySubstringMatchAnyPrefix, und angegebenen Zeichenketteneinschränkungen entsprechen MatchAnySuffix.

MatchAnySubstring— Falls angegeben, enthält das generierte Manifest Objekte, wenn die angegebene Zeichenfolge an einer beliebigen Stelle in der Objektschlüsselzeichenfolge vorkommt.

MatchAnyPrefix— Falls angegeben, enthält das generierte Manifest Objekte, wenn die angegebene Zeichenfolge am Anfang der Objektschlüsselzeichenfolge steht.

MatchAnySuffix— Falls angegeben, enthält das generierte Manifest Objekte, wenn die angegebene Zeichenfolge am Ende der Objektschlüsselzeichenfolge steht.

MatchAnyStorageClass

Falls angegeben, enthält das generierte Manifest nur Quell-Bucket-Objekte, die mit der angegebenen Speicherklasse gespeichert sind.

ObjectReplicationStatuses

Falls angegeben, enthält das generierte Manifest nur Quell-Bucket-Objekte, die einen der angegebenen Replikationsstatus haben.

ObjectSizeGreaterThanBytes

Falls angegeben, enthält das generierte Manifest nur Quell-Bucket-Objekte, deren Dateigröße die angegebene Byteanzahl überschreitet.

ObjectSizeLessThanBytes

Falls angegeben, enthält das generierte Manifest nur Quell-Bucket-Objekte, deren Dateigröße die angegebene Byteanzahl unterschreitet.

Anmerkung

Die meisten Aufträge mit automatisch generierten Manifesten können nicht geklont werden. Stapelreplikationsaufträge können geklont werden, es sei denn, sie verwenden die Manifest-Filterkriterien KeyNameConstraint, MatchAnyStorageClass, ObjectSizeGreaterThanBytes oder ObjectSizeLessThanBytes.

Die Syntax für die Angabe von Manifestkriterien hängt von der Methode ab, mit der Sie Ihren Job erstellen. Beispiele finden Sie unter Erstellen eines-Auftrags.

Erstellen eines-Auftrags

Sie können S3-Batch Operations-Jobs mithilfe der Amazon S3-Konsole AWS CLI, AWS SDKs, oder Amazon S3 erstellen RESTAPI.

Weitere Informationen zum Erstellen einer Auftragsanfrage finden Sie unter Batch-Vorgangsauftrag-Anforderungselemente.

Voraussetzungen

Bevor Sie einen Batch-Operations-Auftrag erstellen, bestätigen Sie, dass Sie die entsprechenden Berechtigungen konfiguriert haben. Weitere Informationen finden Sie unter Gewähren von Berechtigungen für Batchoperationen.

So erstellen Sie einen Batch-Auftrag:
  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 in der Navigationsleiste oben auf der Seite den Namen der aktuell angezeigten Datei aus AWS-Region. Wählen Sie als Nächstes die Region aus, in der Sie Ihren Job erstellen möchten.

    Anmerkung

    Für Kopiervorgänge müssen Sie den Job in derselben Region wie den Ziel-Bucket erstellen. Für alle anderen Operationen müssen Sie den Job in derselben Region wie die Objekte im Manifest erstellen.

  3. Wählen Sie im linken Navigationsbereich der Amazon S3 S3-Konsole Batch Operations aus.

  4. Wählen Sie Job erstellen aus.

  5. Sehen Sie sich AWS-Regionan, wo Sie Ihren Job erstellen möchten.

  6. Wählen Sie unter Manifest format (Manifestformat) das zu verwendende Manifestobjekt aus.

    • Wenn Sie den S3-Inventarbericht wählen, geben Sie den Pfad zum manifest.json-Objekt ein, das Amazon S3 als Teil des CSV -formatierten Inventarberichts generiert hat, und optional die Versions-ID für das Manifest-Objekt, wenn Sie eine andere Version als die neueste verwenden möchten.

    • Wenn Sie möchten CSV, geben Sie den Pfad zu einem Manifest-Objekt im -Format einCSV. Das Manifestobjekt muss das in der Konsole beschriebene Format befolgen. Sie können zudem die Versions-ID des Manifestobjekts angeben, wenn Sie eine andere Version als die aktuelle verwenden möchten.

    Anmerkung

    Die Amazon-S3-Konsole unterstützt die automatische Manifestgenerierung nur für Stapelreplikationsaufträge. Wenn Sie möchten, dass Amazon S3 für alle anderen Auftragstypen automatisch ein Manifest auf der Grundlage der von Ihnen angegebenen Filterkriterien generiert, müssen Sie Ihren Job mit AWS CLI AWS SDKs, oder Amazon S3 konfigurieren RESTAPI.

  7. Wählen Sie Weiter.

  8. Wählen Sie unter Operation (Vorgang) den Vorgang aus, den Sie für alle Objekte in dem Manifest ausführen möchten. Geben Sie die Informationen für die ausgewählte Operation ein und wählen Sie anschließend Next (Weiter) aus.

  9. Geben Sie die Informationen für Configure additional options (Zusätzliche Optionen konfigurieren) ein und wählen Sie anschließend Next (Weiter) aus.

  10. Überprüfen Sie die Einstellungen unter Review (Überprüfen). Wenn Sie Änderungen vornehmen müssen, wählen Sie Previous. Wählen Sie andernfalls Auftrag erstellen.

Um Ihren Batch Operations-Job mit dem zu erstellen AWS CLI, wählen Sie eines der folgenden Beispiele aus, je nachdem, ob Sie ein vorhandenes Manifest angeben oder ein Manifest automatisch generieren.

Specify manifest

Das folgende Beispiel zeigt, wie Sie mit dem AWS CLI einen S3PutObjectTagging S3-Auftrag für Batch Operations erstellen, der auf Objekte reagiert, die in einer vorhandenen Manifestdatei aufgeführt sind.

So erstellen Sie einen Batch S3PutObjectTagging Operations-Job durch Angabe eines Manifests
  1. Verwenden Sie die folgenden Befehle, um eine Rolle AWS Identity and Access Management (IAM) zu erstellen, und erstellen Sie anschließend eine IAM Richtlinie, um die entsprechenden Berechtigungen zuzuweisen. Die folgende Rolle und die folgende Richtlinie gewähren Amazon S3 die Berechtigung zum Hinzufügen von Objekt-Tags, was Sie benötigen, wenn Sie in einem nachfolgenden Schritt den Auftrag erstellen.

    1. Verwenden Sie den folgenden Beispielbefehl, um eine IAM Rolle zu erstellen, die Batch Operations verwenden kann. Ersetzen Sie S3BatchJobRole durch den Namen, den Sie der Rolle geben möchten, um diesen Beispielbefehl zu verwenden.

      aws iam create-role \ --role-name S3BatchJobRole \ --assume-role-policy-document '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"batchoperations.s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }'

      Notieren Sie sich den Amazon-Ressourcennamen (ARN) der Rolle. Sie benötigen denARN, wenn Sie einen Job erstellen.

    2. Verwenden Sie den folgenden Beispielbefehl, um eine IAM Richtlinie mit den erforderlichen Berechtigungen zu erstellen und sie der IAM Rolle zuzuordnen, die Sie im vorherigen Schritt erstellt haben. Weitere Informationen zu den erforderlichen Berechtigungen finden Sie unter Gewähren von Berechtigungen für Batchoperationen.

      Anmerkung

      Batch-Operations-Aufträge, die Aktionen für Verzeichnis-Buckets ausführen, erfordern bestimmte Berechtigungen. Weitere Informationen finden Sie unter AWS Identity and Access Management (IAM) für S3 Express One Zone.

      Um diesen Beispielbefehl zu verwenden, ersetzen Sie die user input placeholders wie folgt:

      • S3BatchJobRoleErsetzen Sie es durch den Namen Ihrer IAM Rolle. Stellen Sie sicher, dass dieser Name mit dem Namen übereinstimmt, den Sie zuvor verwendet haben.

      • PutObjectTaggingBatchJobPolicyErsetzen Sie es durch den Namen, den Sie Ihrer IAM Richtlinie geben möchten.

      • Ersetzen Sie amzn-s3-demo-destination-bucket durch den Namen des Buckets, der die Objekte enthält, auf die Sie Tags anwenden möchten.

      • Ersetzen amzn-s-3 demo-manifest-bucket mit dem Namen des Buckets, der das Manifest enthält.

      • Ersetzen amzn-s3- demo-completion-report-bucket mit dem Namen des Buckets, an den der Abschlussbericht gesendet werden soll.

      aws iam put-role-policy \ --role-name S3BatchJobRole \ --policy-name PutObjectTaggingBatchJobPolicy \ --policy-document '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket", "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject", "s3:GetBucketLocation" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket", "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }'
  2. Verwenden Sie den folgenden Beispielbefehl, um einen S3PutObjectTagging-Auftrag zu erstellen.

    Die manifest.csv-Datei stellt eine Liste mit Bucket- und Objektschlüsselwerten bereit. Der Auftrag wendet die angegebenen Tags auf Objekte an, die im Manifest aufgelistet sind. Das ETag ist das ETag manifest.csv Objekt, das Sie von der Amazon S3 S3-Konsole abrufen können. Diese Anforderung enthält den no-confirmation-required-Parameter, damit Sie den Job ausführen können, ohne ihn mit dem update-job-status-Befehl bestätigen zu müssen. Weitere Informationen finden Sie unter create-jobin der AWS CLI Befehlsreferenz.

    Wenn Sie diesen Beispielbefehl verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen. Ersetzen IAM-Rolle mit ARN der IAM Rolle, die Sie zuvor erstellt haben.

    aws s3control create-job \ --region us-west-2 \ --account-id acct-id \ --operation '{"S3PutObjectTagging": { "TagSet": [{"Key":"keyOne", "Value":"ValueOne"}] }}' \ --manifest '{"Spec":{"Format":"S3BatchOperations_CSV_20180820","Fields":["Bucket","Key"]},"Location":{"ObjectArn":"arn:aws:s3:::amzn-s3-demo-manifest-bucket/manifest.csv","ETag":"60e460c9d1046e73f7dde5043ac3ae85"}}' \ --report '{"Bucket":"arn:aws:s3:::amzn-s3-demo-completion-report-bucket","Prefix":"final-reports", "Format":"Report_CSV_20180820","Enabled":true,"ReportScope":"AllTasks"}' \ --priority 42 \ --role-arn IAM-role \ --client-request-token $(uuidgen) \ --description "job description" \ --no-confirmation-required

    Als Antwort gibt Amazon S3 eine Auftrags-ID zurück (zum Beispie, 00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c). Sie benötigen die Auftrags-ID, um den Auftrag zu identifizieren, zu überwachen und zu ändern.

Generate manifest

Das folgende Beispiel zeigt, wie Sie einen S3-Batch-Operations–S3DeleteObjectTagging-Auftrag erstellen, der automatisch ein Manifest auf der Grundlage Ihrer Objektfilterkriterien generiert. Zu diesen Kriterien gehören das Erstellungsdatum, der Schlüsselname, die Größe, die Speicherklasse und die Tags.

So erstellen Sie einen Batch S3DeleteObjectTagging Operations-Job durch Generieren eines Manifests
  1. Verwenden Sie die folgenden Befehle, um eine Rolle AWS Identity and Access Management (IAM) und anschließend eine IAM Richtlinie zum Zuweisen von Berechtigungen zu erstellen. Die folgende Rolle und die folgende Richtlinie gewähren Amazon S3 die Berechtigung zum Löschen von Objekt-Tags, was Sie benötigen, wenn Sie in einem nachfolgenden Schritt den Auftrag erstellen.

    1. Verwenden Sie den folgenden Beispielbefehl, um eine IAM Rolle zu erstellen, die Batch Operations verwenden kann. Ersetzen Sie S3BatchJobRole durch den Namen, den Sie der Rolle geben möchten, um diesen Beispielbefehl zu verwenden.

      aws iam create-role \ --role-name S3BatchJobRole \ --assume-role-policy-document '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"batchoperations.s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }'

      Notieren Sie sich den Amazon-Ressourcennamen (ARN) der Rolle. Sie benötigen denARN, wenn Sie einen Job erstellen.

    2. Verwenden Sie den folgenden Beispielbefehl, um eine IAM Richtlinie mit den erforderlichen Berechtigungen zu erstellen und sie der IAM Rolle zuzuordnen, die Sie im vorherigen Schritt erstellt haben. Weitere Informationen zu den erforderlichen Berechtigungen finden Sie unter Gewähren von Berechtigungen für Batchoperationen.

      Anmerkung

      Batch-Operations-Aufträge, die Aktionen für Verzeichnis-Buckets ausführen, erfordern bestimmte Berechtigungen. Weitere Informationen finden Sie unter AWS Identity and Access Management (IAM) für S3 Express One Zone.

      Um diesen Beispielbefehl zu verwenden, ersetzen Sie die user input placeholders wie folgt:

      • S3BatchJobRoleErsetzen Sie es durch den Namen Ihrer IAM Rolle. Stellen Sie sicher, dass dieser Name mit dem Namen übereinstimmt, den Sie zuvor verwendet haben.

      • DeleteObjectTaggingBatchJobPolicyErsetzen Sie es durch den Namen, den Sie Ihrer IAM Richtlinie geben möchten.

      • Ersetzen Sie amzn-s3-demo-destination-bucket durch den Namen des Buckets, der die Objekte enthält, auf die Sie Tags anwenden möchten.

      • Ersetzen Sie amzn-s3-demo-manifest-bucket durch den Namen des Buckets, in dem das Manifest gespeichert werden soll.

      • Ersetzen Sie amzn-s3-demo-completion-report-bucket durch den Namen des Buckets, an den der Abschlussbericht übermittelt werden soll.

      aws iam put-role-policy \ --role-name S3BatchJobRole \ --policy-name DeleteObjectTaggingBatchJobPolicy \ --policy-document '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:DeleteObjectTagging", "s3:DeleteObjectVersionTagging" ], "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }, { "Effect":"Allow", "Action":[ "s3:PutInventoryConfiguration" ], "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket", "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket", "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*", "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] } ] }'

  2. Verwenden Sie den folgenden Beispielbefehl, um den S3DeleteObjectTagging-Auftrag zu erstellen.

    In diesem Beispiel geben die Werte im --report-Abschnitt den Bucket, das Präfix, das Format und den Umfang des Auftragsberichts an, der generiert wird. Der --manifest-generator-Abschnitt enthält Informationen über den Quell-Bucket, der die Objekte enthält, auf die der Auftrag wirkt, Informationen über die Manifest-Ausgabeliste, die für den Auftrag generiert wird, und Filterkriterien, um den Bereich der Objekte, die in das Manifest aufgenommen werden sollen, nach Erstellungsdatum, Namenseinschränkungen, Größe und Speicherklasse einzugrenzen. Der Befehl gibt auch die Priorität, IAM Rolle und des Jobs an AWS-Region.

    Weitere Informationen finden Sie unter create-jobin der AWS CLI Befehlsreferenz.

    Wenn Sie diesen Beispielbefehl verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen. Ersetzen IAM-Rolle mit ARN der IAM Rolle, die Sie zuvor erstellt haben.

    aws s3control create-job \ --account-id 012345678901 \ --operation '{ "S3DeleteObjectTagging": {} }' \ --report '{ "Bucket":"arn:aws:s3:::amzn-s3-demo-completion-report-bucket", "Prefix":"reports", "Format":"Report_CSV_20180820", "Enabled":true, "ReportScope":"AllTasks" }' \ --manifest-generator '{ "S3JobManifestGenerator": { "ExpectedBucketOwner": "012345678901", "SourceBucket": "arn:aws:s3:::amzn-s3-demo-source-bucket", "EnableManifestOutput": true, "ManifestOutputLocation": { "ExpectedManifestBucketOwner": "012345678901", "Bucket": "arn:aws:s3:::amzn-s3-demo-manifest-bucket", "ManifestPrefix": "prefix", "ManifestFormat": "S3InventoryReport_CSV_20211130" }, "Filter": { "CreatedAfter": "2023-09-01", "CreatedBefore": "2023-10-01", "KeyNameConstraint": { "MatchAnyPrefix": [ "prefix" ], "MatchAnySuffix": [ "suffix" ] }, "ObjectSizeGreaterThanBytes": 100, "ObjectSizeLessThanBytes": 200, "MatchAnyStorageClass": [ "STANDARD", "STANDARD_IA" ] } } }' \ --priority 2 \ --role-arn IAM-role \ --region us-east-1

    Als Antwort gibt Amazon S3 eine Auftrags-ID zurück (zum Beispie, 00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c). Sie benötigen diese Auftrags-ID, um den Auftrag zu identifizieren, zu überwachen oder zu ändern.

Um Ihren Batch Operations-Job mit dem zu erstellen AWS SDK for Java, wählen Sie eines der folgenden Beispiele aus, je nachdem, ob Sie ein vorhandenes Manifest angeben oder ein Manifest automatisch generieren.

Specify manifest

Das folgende Beispiel zeigt, wie Sie einen S3-Batch-Operations–S3PutObjectTagging-Auftrag für Objekte erstellen, die in einer vorhandenen Manifestdatei aufgelistet sind. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen.

package aws.example.s3control; import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3control.AWSS3Control; import com.amazonaws.services.s3control.AWSS3ControlClient; import com.amazonaws.services.s3control.model.*; import java.util.UUID; import java.util.ArrayList; import static com.amazonaws.regions.Regions.US_WEST_2; public class CreateJob { public static void main(String[] args) { String accountId = "Account ID"; String iamRoleArn = "IAM Role ARN"; String reportBucketName = "arn:aws:s3:::amzn-s3-demo-completion-report-bucket"; String uuid = UUID.randomUUID().toString(); ArrayList tagSet = new ArrayList<S3Tag>(); tagSet.add(new S3Tag().withKey("keyOne").withValue("ValueOne")); try { JobOperation jobOperation = new JobOperation() .withS3PutObjectTagging(new S3SetObjectTaggingOperation() .withTagSet(tagSet) ); JobManifest manifest = new JobManifest() .withSpec(new JobManifestSpec() .withFormat("S3BatchOperations_CSV_20180820") .withFields(new String[]{ "Bucket", "Key" })) .withLocation(new JobManifestLocation() .withObjectArn("arn:aws:s3:::my_manifests/manifest.csv") .withETag("60e460c9d1046e73f7dde5043ac3ae85")); JobReport jobReport = new JobReport() .withBucket(reportBucketName) .withPrefix("reports") .withFormat("Report_CSV_20180820") .withEnabled(true) .withReportScope("AllTasks"); AWSS3Control s3ControlClient = AWSS3ControlClient.builder() .withCredentials(new ProfileCredentialsProvider()) .withRegion(US_WEST_2) .build(); s3ControlClient.createJob(new CreateJobRequest() .withAccountId(accountId) .withOperation(jobOperation) .withManifest(manifest) .withReport(jobReport) .withPriority(42) .withRoleArn(iamRoleArn) .withClientRequestToken(uuid) .withDescription("job description") .withConfirmationRequired(false) ); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it and 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(); } } }
Generate manifest

Das folgende Beispiel zeigt, wie Sie einen S3-Batch-Operations–s3PutObjectCopy-Auftrag erstellen, der automatisch ein Manifest auf der Grundlage Ihrer Objektfilterkriterien, einschließlich des Erstellungsdatums, des Schlüsselnamens und der Größe, generiert. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen.

package aws.example.s3control; import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3control.AWSS3Control; import com.amazonaws.services.s3control.AWSS3ControlClient; import com.amazonaws.services.s3control.model.CreateJobRequest; import com.amazonaws.services.s3control.model.CreateJobResult; import com.amazonaws.services.s3control.model.JobManifestGenerator; import com.amazonaws.services.s3control.model.JobManifestGeneratorFilter; import com.amazonaws.services.s3control.model.JobOperation; import com.amazonaws.services.s3control.model.JobReport; import com.amazonaws.services.s3control.model.KeyNameConstraint; import com.amazonaws.services.s3control.model.S3JobManifestGenerator; import com.amazonaws.services.s3control.model.S3ManifestOutputLocation; import com.amazonaws.services.s3control.model.S3SetObjectTaggingOperation; import com.amazonaws.services.s3control.model.S3Tag; import java.time.Instant; import java.util.Date; import java.util.UUID; import java.util.ArrayList; import static com.amazonaws.regions.Regions.US_WEST_2; public class test { public static void main(String[] args) { String accountId = "012345678901"; String iamRoleArn = "arn:aws:iam::012345678901:role/ROLE"; String sourceBucketName = "arn:aws:s3:::amzn-s3-demo-source-bucket"; String reportBucketName = "arn:aws:s3:::amzn-s3-demo-completion-report-bucket"; String manifestOutputBucketName = "arn:aws:s3:::amzn-s3-demo-manifest-bucket"; String uuid = UUID.randomUUID().toString(); long minimumObjectSize = 100L; ArrayList<S3Tag> tagSet = new ArrayList<>(); tagSet.add(new S3Tag().withKey("keyOne").withValue("ValueOne")); ArrayList<String> prefixes = new ArrayList<>(); prefixes.add("s3KeyStartsWith"); try { JobOperation jobOperation = new JobOperation() .withS3PutObjectTagging(new S3SetObjectTaggingOperation() .withTagSet(tagSet) ); S3ManifestOutputLocation manifestOutputLocation = new S3ManifestOutputLocation() .withBucket(manifestOutputBucketName) .withManifestPrefix("manifests") .withExpectedManifestBucketOwner(accountId) .withManifestFormat("S3InventoryReport_CSV_20211130"); JobManifestGeneratorFilter jobManifestGeneratorFilter = new JobManifestGeneratorFilter() .withEligibleForReplication(true) .withKeyNameConstraint( new KeyNameConstraint() .withMatchAnyPrefix(prefixes)) .withCreatedBefore(Date.from(Instant.now())) .withObjectSizeGreaterThanBytes(minimumObjectSize); S3JobManifestGenerator s3JobManifestGenerator = new S3JobManifestGenerator() .withEnableManifestOutput(true) .withManifestOutputLocation(manifestOutputLocation) .withFilter(jobManifestGeneratorFilter) .withSourceBucket(sourceBucketName); JobManifestGenerator jobManifestGenerator = new JobManifestGenerator() .withS3JobManifestGenerator(s3JobManifestGenerator); JobReport jobReport = new JobReport() .withBucket(reportBucketName) .withPrefix("reports") .withFormat("Report_CSV_20180820") .withEnabled(true) .withReportScope("AllTasks"); AWSS3Control s3ControlClient = AWSS3ControlClient.builder() .withCredentials(new ProfileCredentialsProvider()) .withRegion(US_WEST_2) .build(); CreateJobResult createJobResult = s3ControlClient.createJob(new CreateJobRequest() .withAccountId(accountId) .withOperation(jobOperation) .withManifestGenerator(jobManifestGenerator) .withReport(jobReport) .withPriority(42) .withRoleArn(iamRoleArn) .withClientRequestToken(uuid) .withDescription("job description") .withConfirmationRequired(true) ); System.out.println("Created job " + createJobResult.getJobId()); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it and 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(); } } }

Sie können den verwenden RESTAPI, um einen Batch Operations-Job zu erstellen. Weitere Informationen finden Sie unter CreateJobin der Amazon Simple Storage Service API Reference.

Auftragsantworten

Wenn die CreateJob-Anforderung erfolgreich ist, gibt Amazon S3 eine Auftrags-ID zurück. Die Auftrags-ID ist eine eindeutige Kennung, die Amazon S3 automatisch erstellt. Anhand dieser ID können Sie Ihren Batch-Vorgangsauftrag identifizieren und dessen Status überwachen.

Wenn Sie einen Job über, oder erstellen AWS CLI AWS SDKs, können Sie S3 Batch Operations so einrichten RESTAPI, dass die Verarbeitung des Jobs automatisch beginnt. Der Auftrag wird ausgeführt, sobald er bereit ist, und muss nicht hinter Aufträgen mit höherer Priorität warten.

Wenn Sie einen Auftrag über die Amazon-S3-Konsole erstellen, müssen Sie die Auftragsdetails überprüfen und bestätigen, dass Sie ihn ausführen möchten, bevor Batch Operations mit seiner Verarbeitung beginnen kann. Wenn ein Auftrag den Status „Ausgesetzt“ mehr als 30 Tage behält, schlägt er fehl.