Bestimmte Dateien oder Objekte mithilfe eines Manifests übertragen

Auf dieser Seite erfahren Sie, wie Sie ein Manifest von bestimmten Objekten oder Dateien erstellen, die Sie übertragen möchten. Ein Manifest ist ein Cloud Storage-Objekt im CSV-Format, das eine Liste von Dateien oder Objekten enthält, auf die Storage Transfer Service reagieren kann. Mit Manifesten können Sie:

  • Eine bestimmte Liste von Dateien aus einem POSIX-Dateisystem in einen Cloud Storage-Bucket übertragen.
  • Eine bestimmte Liste von Objekten aus einem Cloud Storage-Bucket in ein POSIX-Dateisystem übertragen.
  • Eine bestimmte Liste von Objekten aus AWS S3, Azure Blobstore oder Cloud Storage in einen Cloud Storage-Bucket übertragen.

Durch Angabe eines Manifests in createTransferJob werden nur die Dateien oder Objekte übertragen, die im Manifest aufgeführt sind.

Manifest für Dateien oder Objekte für eine Übertragung erstellen

Manifeste müssen im CSV-Dateiformat vorliegen und können beliebige UTF-8-Zeichen enthalten. Die erste Spalte muss ein Dateipfad oder ein Objektname sein, der als String angegeben ist. Wir empfehlen, die Übertragung mit einer kleinen Teilmenge von Dateien oder Objekten zu testen, um eine große Anzahl von verschwendeten API-Aufrufen aufgrund von Konfigurationsfehlern zu vermeiden.

Sie können den Status von Dateiübertragungen auf der Seite „Übertragungsjobs“ überwachen. Dateien oder Objekte, die nicht übertragen werden sollen, werden in den Übertragungslogs aufgeführt.

Manifest von Dateien

Um ein Manifest aus Dateien eines POSIX-Dateisystems zu erstellen, das in Cloud Storage übertragen werden soll, erstellen Sie eine CSV-Datei mit einer einzelnen Spalte, die die Dateipfade relativ zu root_directory in createTransferJob enthält.

Beispielmanifest für Dateien

Ein Manifest der folgenden Dateien:

Dateipfad
rootdir/dir1/subdir1/file1.txt
rootdir/File2.txt
rootdir/dir1/subdir1/file3.txt
rootdir/dir1/subdir4/file4.txt
rootdir/dir1/subdir1/file5.txt

würde so aussehen:

"dir1/subdir1/file1.txt"
"File2.txt"
"dir1/subdir1/file3.txt"
"dir1/subdir4/file4.txt"
"dir1/subdir1/file5.txt"

Manifest von Objekten

Um ein Manifest von Objekten zu erstellen, erstellen Sie eine CSV-Datei mit der ersten Spalte, die die Objektnamen relativ zu bucketName/path in createTransferJob enthält. Wenn ein Objektname Kommas enthält, müssen diese entsprechend den CSV-Standards ordnungsgemäß maskiert werden. Sie können auch eine optionale zweite Spalte mit der Objektversion angeben. Alle aufgelisteten Objekte müssen sich in einem Bucket befinden, der im Quellpfad angegeben ist.

Beispielmanifest für Objekte

Ein Manifest der folgenden Objekte:

Objektpfad Objektversion (optional)
SOURCE_PATH/object1.pdf 15857022
SOURCE_PATH/object2.pdf 585902
SOURCE_PATH/object3.pdf 74845
SOURCE_PATH/object4.jpg 149937

würde so aussehen:

object1.pdf,15857022
object2.pdf,585902
object3.pdf,74845
object4.jpg,149937

Manifest in den richtigen Speicherort hochladen

Nachdem Sie das Manifest erstellt haben, laden Sie das Manifest in einen Cloud Storage-Bucket hoch. Der Dienst-Agent, der die Übertragung ausführt, muss die Berechtigung storage.objects.get für den Bucket haben, in den Sie die Manifestdatei hochladen. Eine Anleitung zum Gewähren von Berechtigungen für den Dienst-Agent finden Sie unter Zugriff auf die Datenquelle einrichten.

Sie können Manifeste, die sich in einem Cloud Storage-Bucket befinden, mit vom Kunden verwalteten Cloud KMS-Verschlüsselungsschlüsseln verschlüsseln. Sorgen Sie in diesem Fall dafür, dass allen Dienstkonten, die auf das Manifest zugreifen, die entsprechenden Verschlüsselungsschlüssel zugewiesen werden. Vom Kunden bereitgestellte Schlüssel werden nicht unterstützt.

Übertragung mit dem angegebenen Manifest starten

Um die im Manifest aufgeführten Dateien oder Objekte zu übertragen, führen Sie einen createTransferJob-API-Aufruf aus, der eine transferSpec mit dem hinzugefügten Feld transferManifest angibt. Beispiel:

POST https://storagetransfer.googleapis.com/v1/transferJobs

...
    "transferSpec": {
        "PosixFilesystem": {
            "root_directory": "/home/",
        },
        "gcsDataSink": {
            "bucketName": "GCS_NEARLINE_SINK_NAME",
            "path": "GCS_SINK_PATH",
        },
        "transferManifest": {
            "location": "gs://my_bucket/sample_manifest.csv"
        }
    }

Die Objekte oder Dateien im Manifest werden nicht unbedingt in der aufgeführten Reihenfolge übertragen.

Wenn das Manifest Dateien enthält, die bereits im Ziel vorhanden sind, werden diese Dateien übersprungen.

Wenn das Manifest Objekte enthält, die in einer anderen Version am Ziel vorhanden sind, wird das Objekt am Ziel mit der Quellversion des Objekts überschrieben. Wenn das Ziel ein versionierter Bucket ist, wird eine neue Version des Objekts erstellt. Wenn das Zielobjekt mit dem Quellobjekt identisch ist, wird das Objekt übersprungen, sofern nicht overwriteObjectsAlreadyExistingInSink=true angegeben ist.

Nächste Schritte