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 Objektliste im CSV-Format.

  • Wählen Sie einen vorhandenen Amazon S3 Inventory-Bericht im CSV-Format 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 S3-Konsole erstellen, oder für jeden Auftragstyp, den Sie mithilfe der AWS SDKs oder der AWS CLI Amazon S3 S3-REST-API erstellen.

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 versionsgesteuerten Bucket befinden, müssen Sie die Versions-IDs für die Objekte angeben, um den Vorgang für eine bestimmte Version auszuführen. Batch Operations führt den Vorgang für die neueste Version durch, wenn keine Versions-ID angegeben ist. 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. So können Sie beispielsweise allen Wiederherstellen- (RestoreObject) Aufträgen die Priorität 1, allen Kopieren- (CopyObject) Aufträgen die Priorität 2 und allen Zugriffssteuerungslisten (ACLs) ersetzen (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 verwendete IAM-Rolle muss über ausreichende Berechtigungen verfügen, um die im Auftrag festgelegte Operation durchzuführen. Um z. B. einen CopyObject-Auftrag auszuführen, benötigt die IAM-Rolle die s3:GetObject-Berechtigung für den Quell-Bucket und die s3:PutObject-Berechtigung für den Ziel-Bucket. Außerdem braucht die Rolle die Berechtigungen, das Manifest zu lesen und den Auftragsabschlussbericht zu schreiben.

Weitere Informationen zu IAM-Rollen finden Sie unter IAM-Rollen im IAM-Benutzerhandbuch.

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 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 S3-Konsole erstellen, oder für jeden Auftragstyp, den Sie mithilfe der AWS SDKs oder der AWS CLI Amazon S3 S3-REST-API erstellen.

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.

Erstellen einer Manifestdatei

Um ein Manifest manuell zu erstellen, geben Sie den Objektschlüssel des Manifests, das ETag (Entity-Tag) und die optionale Versions-ID in einer CSV-formatierten Liste an. Die Inhalte des Manifests müssen per URL verschlüsselt sein.

Standardmäßig wendet Amazon S3 automatisch die serverseitige Verschlüsselung mit von Amazon S3 verwalteten Verschlüsselungsschlüsseln (SSE-S3) an, um ein Manifest zu verschlüsseln, das in einen Amazon-S3-Bucket hochgeladen wird. Manifeste, die 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 CSV-Format verwenden.

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 versionsgesteuerten Bucket befinden, müssen Sie die Versions-IDs für die Objekte angeben, um den Vorgang für eine bestimmte Version auszuführen. Batch Operations führt den Vorgang für die neueste Version durch, wenn keine Versions-ID angegeben ist. 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 Versions-IDs.

Examplebucket,objectkey1 Examplebucket,objectkey2 Examplebucket,objectkey3 Examplebucket,photos/jpgs/objectkey4 Examplebucket,photos/jpgs/newjersey/objectkey5 Examplebucket,object%20key%20with%20spaces

Im Folgenden finden Sie ein Beispiel für ein Manifest im CSV-Format mit Versions-IDs.

Examplebucket,objectkey1,PZ9ibn9D5lP6p298B7S9_ceqx1n5EJ0p Examplebucket,objectkey2,YY_ouuAJByNW1LRBfFMfxMge7XQWxMBF Examplebucket,objectkey3,jbo9_jhdPEyB4RrmOxWS0kU0EoNrU_oI Examplebucket,photos/jpgs/objectkey4,6EqlikJJxLTsHsnbZbSRffn24_eh5Ny4 Examplebucket,photos/jpgs/newjersey/objectkey5,imHf3FAiRsvBW_EHB8GOu.NHunHO1gVs Examplebucket,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-Bestandsbericht – Muss ein CSV-formatierter Amazon-S3-Bestandsbericht sein. Sie müssen die manifest.json-Datei angeben, die mit dem Bestandsbericht verknüpft ist. Weitere Informationen zu Bestandsberichten finden Sie unter Amazon S3 Inventory. Enthält der Bestandsbericht Versions-IDs, führt S3-Batch-Vorgänge die Aktionen auf den spezifischen Objektversionen aus.

    Anmerkung
    • S3 Batch Operations unterstützt Bestandsberichte im .CSV-Format, die mit SSE-KMS verschlüsselt sind.

    • Wenn Sie ein Bestandsbericht-Manifest übermitteln, das mit SSE-KMS verschlüsselt ist, muss Ihre IAM-Richtlinie die Berechtigungen "kms:Decrypt" und "kms:GenerateDataKey" für das manifest.json-Objekt und alle zugehörigen CSV-Datendateien enthalten.

  • CSV-Datei – Jede Zeile in der Datei muss den Bucket-Namen, den Objektschlüssel und optional die Objektversion enthalten. Objektschlüssel müssen URL-codiert sein, wie in den folgenden Beispielen gezeigt. Das Manifest muss Versions-IDs für alle Objekte enthalten oder auslassen. Weitere Informationen über das CSV-Manifest-Format finden Sie unter JobManifestSpec in der Amazon-Simple-Storage-Service-API-Referenz.

    Anmerkung

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

Wichtig

Wenn Sie ein manuell erstelltes Manifest und einen versionsgesteuerten Bucket verwenden, wird empfohlen, die Versions-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 verhindern, besteht darin, eine Versions-ID für die im Manifest enthaltenen Objekte anzugeben.

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 S3-Konsole erstellen, oder für jeden Auftragstyp, den Sie mithilfe der AWS SDKs oder der AWS CLI Amazon S3 S3-REST-API erstellen. Weitere Informationen zur Batch-Replikationen finden Sie unter Replizieren bestehender Objekte mit S3-Batch-Replikation.

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-Eigentümers und des Amazon-Ressourcennamens (ARN)

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

  • Optionale Kriterien zum Filtern von Objekten nach Erstellungsdatum, Schlüsselname, Größe, Speicherklasse und Tags

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 JobManifestGeneratorFilter in der Amazon-S3-API-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 MatchAnySuffixangegebenen Zeichenketteneinschränkungen entsprechen.

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 S3-Konsole AWS CLI, AWS SDKs oder der Amazon S3 S3-REST-API erstellen.

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 Erteilen von Berechtigungen für Amazon-S3-BatchVorgänge.

So erstellen Sie einen Batch-Auftrag:
  1. Melden Sie sich bei der Amazon S3 S3-Konsole an AWS Management Console und öffnen Sie sie 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 die Option S3 inventory report (S3-Bestandsbericht) auswählen, müssen Sie den Pfad zu dem manifest.json-Objekt eingeben, das von Amazon S3 als Bestandteil des Bestandsberichts im CSV-Format generiert wurde. Darüber hinaus können Sie wahlweise auch die Versions-ID des Manifestobjekts eingeben, wenn Sie eine andere Version als die aktuelle verwenden möchten.

    • Wenn Sie CSV auswählen, geben Sie den Pfad zu einem CSV-formatierten Manifestobjekt ein. 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 mithilfe der AWS SDKs oder der AWS CLI Amazon S3 S3-REST-API konfigurieren.

  7. Wählen Sie Next.

  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 Create Job (Auftrag erstellen).

Specify manifest

Das folgende Beispiel zeigt, wie Sie einen S3-Batch-Operations–S3PutObjectTaggingAuftrag für Objekte erstellen, die in einer vorhandenen Manifestdatei aufgelistet sind.

So erstellen Sie den Batch-Vorgangsauftrag S3PutObjectTagging
  1. Verwenden Sie die folgenden Befehle, um eine AWS Identity and Access Management (IAM-) Rolle 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 für Batch Operations zu erstellen. 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-Ressourcenname (ARN) der Rolle. Sie benötigen den ARN zum Erstellen eines Auftrags.

    2. Verwenden Sie den folgenden Beispielbefehl zum Erstellen einer IAM-Richtlinie mit den erforderlichen Berechtigungen und fügen Sie sie der im vorherigen Schritt erstellten IAM-Rolle an. Weitere Informationen zu den erforderlichen Berechtigungen finden Sie unter Erteilen von Berechtigungen für Amazon-S3-BatchVorgänge.

      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:

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

      • Ersetzen Sie PutObjectTaggingBatchJobPolicy durch den Namen, den Sie Ihrer IAM-Richtlinie geben möchten.

      • Ersetzen Sie DOC-EXAMPLE-DESTINATION-BUCKET durch den Namen des Buckets, der die Objekte enthält, auf die Sie Tags anwenden möchten.

      • Ersetzen Sie DOC-EXAMPLE-MANIFEST-BUCKET durch den Namen des Buckets, der das Manifestenthält.

      • Ersetzen Sie DOC-EXAMPLE-REPORT-BUCKET durch den Namen des Buckets, an den der Abschlussbericht übermittelt 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:::DOC-EXAMPLE-DESTINATION-BUCKET/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-BUCKET/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject", "s3:GetBucketLocation" ], "Resource":[ "arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-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. ETag ist das ETag des manifest.csv-Objekts, das Sie mit der Amazon-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-job in der Referenz zum AWS CLI -Befehl.

    Wenn Sie diesen Beispielbefehl verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen. Ersetzen Sie IAM-role durch den ARN des Buckets, den 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:::my_manifests/manifest.csv","ETag":"60e460c9d1046e73f7dde5043ac3ae85"}}' \ --report '{"Bucket":"arn:aws:s3:::DOC-EXAMPLE-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 den Batch-Vorgangsauftrag S3DeleteObjectTagging
  1. Verwenden Sie die folgenden Befehle, um eine AWS Identity and Access Management (IAM-) Rolle zu erstellen, und erstellen Sie anschließend eine IAM-Richtlinie, um Berechtigungen zuzuweisen. 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 für Batch Operations zu erstellen. 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-Ressourcenname (ARN) der Rolle. Sie benötigen den ARN zum Erstellen eines Auftrags.

    2. Verwenden Sie den folgenden Beispielbefehl zum Erstellen einer IAM-Richtlinie mit den erforderlichen Berechtigungen und fügen Sie sie der im vorherigen Schritt erstellten IAM-Rolle an. Weitere Informationen zu den erforderlichen Berechtigungen finden Sie unter Erteilen von Berechtigungen für Amazon-S3-BatchVorgänge.

      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:

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

      • Ersetzen Sie DeleteObjectTaggingBatchJobPolicy durch den Namen, den Sie Ihrer IAM-Richtlinie geben möchten.

      • Ersetzen Sie DOC-EXAMPLE-DESTINATION-BUCKET durch den Namen des Buckets, der die Objekte enthält, auf die Sie Tags anwenden möchten.

      • Ersetzen Sie DOC-EXAMPLE-MANIFEST-OUTPUT-BUCKET durch den Namen des Buckets, in dem das Manifest gespeichert werden soll.

      • Ersetzen Sie DOC-EXAMPLE-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:::DOC-EXAMPLE-DESTINATION-BUCKET/*" }, { "Effect":"Allow", "Action":[ "s3:PutInventoryConfiguration" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-OUTPUT-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-OUTPUT-BUCKET/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET/*", "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-OUTPUT-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, die IAM-Rolle und die AWS-Region des Auftrags an.

    Weitere Informationen finden Sie unter create-job in der Referenz zum AWS CLI -Befehl.

    Wenn Sie diesen Beispielbefehl verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen. Ersetzen Sie IAM-role durch den ARN des Buckets, den Sie zuvor erstellt haben.

    aws s3control create-job \ --account-id 012345678901 \ --operation '{ "S3DeleteObjectTagging": {} }' \ --report '{ "Bucket":"arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET", "Prefix":"reports", "Format":"Report_CSV_20180820", "Enabled":true, "ReportScope":"AllTasks" }' \ --manifest-generator '{ "S3JobManifestGenerator": { "ExpectedBucketOwner": "012345678901", "SourceBucket": "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET", "EnableManifestOutput": true, "ManifestOutputLocation": { "ExpectedManifestBucketOwner": "012345678901", "Bucket": "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-OUTPUT-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.

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:::DOC-EXAMPLE-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:::DOC-EXAMPLE-SOURCE-BUCKET"; String reportBucketName = "arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET"; String manifestOutputBucketName = "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-OUTPUT-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 die REST-API verwenden, um einen Batchvorgangsauftrag zu erstellen. Weitere Informationen finden Sie unter CreateJob in der API-Referenz zu Amazon Simple Storage Service.

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 die AWS SDKs oder die AWS CLI REST-API erstellen, können Sie S3 Batch Operations so einrichten, 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.