Der Storage Transfer Service unterstützt die Übertragung bestimmter Dateien oder Objekte, die mit einem Manifest angegeben werden. Ein Manifest ist eine CSV-Datei, die in Cloud Storage hochgeladen wird und eine Liste von Dateien oder Objekten enthält, auf denen Storage Transfer Service Aktionen ausführen kann.
Ein Manifest kann für die folgenden Übertragungen verwendet werden:
Von AWS S3, Azure Blobstore oder Cloud Storage in einen Cloud Storage-Bucket.
Von einem Dateisystem in einen Cloud Storage-Bucket.
Von S3-kompatiblem Speicher zu einem Cloud Storage-Bucket
Von einem Cloud Storage-Bucket in ein Dateisystem
Zwischen zwei Dateisystemen.
Von einer öffentlich zugänglichen HTTP-/HTTPS-Quelle zu einem Cloud Storage-Bucket Folgen Sie der Anleitung unter URL-Liste erstellen, da das Manifestformat für URL-Listen einzigartig ist.
Manifest erstellen
Manifeste müssen als CSV-Datei formatiert werden und können beliebige UTF-8-Zeichen enthalten. Die erste Spalte muss ein Datei- oder Objektname sein, der als String angegeben ist.
In Manifestdateien werden keine Platzhalter unterstützt. Der Wert muss der Name einer bestimmten Datei oder eines bestimmten Objekts sein. Ordnernamen ohne Datei- oder Objektnamen werden nicht unterstützt.
Die maximale Manifestdateigröße beträgt 1 GiB, was etwa 1 Million Zeilen entspricht. Wenn Sie eine Manifestdatei übertragen möchten, die größer als 1 GiB ist, können Sie sie in mehrere Dateien aufteilen und mehrere Übertragungsjobs ausführen.
Wenn ein Datei- oder Objektname Kommas enthält, muss er gemäß den CSV-Standards in Anführungszeichen gesetzt werden.
Beispiel: "object1,a.txt"
.
Wir empfehlen, die Übertragung mit einer kleinen Teilmenge von Dateien oder Objekten zu testen, um unnötige API-Aufrufe 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.
Dateisystemübertragungen
Wenn Sie ein Manifest von Dateien in einem Dateisystem erstellen möchten, erstellen Sie eine CSV-Datei mit einer einzelnen Spalte, die die Dateipfade relativ zum Stammverzeichnis enthält, das bei der Erstellung des Übertragungsjobs angegeben wurde.
Sie können beispielsweise die folgenden Dateien des Dateisystems übertragen:
Dateipfad |
---|
rootdir/dir1/subdir1/file1.txt |
rootdir/file2.txt |
rootdir/dir2/subdir1/file3.txt |
Das Manifest sollte in etwa so aussehen:
dir1/subdir1/file1.txt
file2.txt
dir2/subdir1/file3.txt
Objektspeicherübertragungen
Um ein Manifest von Objekten zu erstellen, erstellen Sie eine CSV-Datei, deren erste Spalte die Objektnamen relativ zum Bucket-Namen und Pfad enthält, die beim Erstellen des Übertragungsjobs angegeben wurden. Alle Objekte müssen sich im selben Bucket befinden.
Sie können auch eine optionale zweite Spalte mit dem Cloud Storage- die Generierungsnummer der zu übertragenden Version.
Sie können beispielsweise die folgenden Objekte übertragen:
Objektpfad | Cloud Storage-Generierungsnummer |
---|---|
SOURCE_PATH/object1.pdf |
1664826685911832 |
SOURCE_PATH/object2.pdf |
|
SOURCE_PATH/object3.pdf |
1664826610699837 |
Ihr Manifest sollte in etwa so aussehen:
object1.pdf,1664826685911832
object2.pdf
object3.pdf,1664826610699837
Speichern Sie die Manifestdatei mit einem beliebigen Dateinamen und der Erweiterung .csv
.
HTTP-/HTTPS-Übertragungen
Wenn Sie bestimmte Dateien von einer HTTP- oder HTTPS-Quelle übertragen möchten, folgen Sie der Anleitung unter URL-Liste erstellen.
Manifest veröffentlichen
Sobald Sie das Manifest erstellt haben, müssen Sie es für alle Storage Transfer Service Storage Transfer Service kann auf die Datei in einem Cloud Storage- oder in Ihrem Dateisystem gespeichert sind.
Manifest in Cloud Storage hochladen
Sie können die Manifestdatei in einem beliebigen Cloud Storage-Bucket speichern.
Der Dienst-Agent, der den
Übertragung muss die Berechtigung storage.objects.get
für den Bucket haben, der diesen enthält
des Manifests. Eine Anleitung zum Ermitteln der Dienst-Agent-ID und zum Erteilen von Berechtigungen für diesen Dienst-Agent für einen Bucket finden Sie unter Erforderliche Berechtigungen erteilen.
Eine Anleitung zum Hochladen des Manifests in einen Bucket finden Sie unter Objekte in Cloud Storage hochladen Dokumentation.
Wenn Sie beispielsweise mit der gcloud
CLI eine Datei in Cloud Storage hochladen möchten, verwenden Sie den Befehl gcloud storage cp
:
gcloud storage cp MANIFEST.CSV gs://DESTINATION_BUCKET_NAME/
Wobei:
MANIFEST.CSV
ist der lokale Pfad zu Ihrem Manifestdatei. Beispiel:Desktop/manifest01.csv
.DESTINATION_BUCKET_NAME
ist der Name des Buckets, in den Sie das Objekt hochladen. Beispiel:my-bucket
Wenn der Vorgang erfolgreich ausgeführt wurde, sieht die Antwort in etwa so aus:
Completed files 1/1 | 164.3kiB/164.3kiB
Sie können ein Manifest verschlüsseln, mit vom Kunden verwalteten Cloud KMS-Verschlüsselungsschlü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.
Manifest in einem Dateisystem speichern
Sie können die Manifestdatei im Quell- oder Zieldateisystem speichern.
Auf den Speicherort der Datei muss für die Übertragungs-Agenten zugegriffen werden können. Wenn Sie den Verzeichniszugriff für Ihre Kundenservicemitarbeiter einschränken, muss sich die Manifestdatei in einem bereitgestellten Verzeichnis befinden.
Übertragung starten
Ändern Sie die Manifestdatei erst, wenn ein Übertragungsvorgang abgeschlossen ist. Wir empfehlen, die Manifestdatei zu sperren, wenn eine Übertragung
Cloud Console
So starten Sie eine Übertragung mit einem Manifest über die Cloud Console:
Folgen Sie der Anleitung unter Wechselstellen erstellen, um Quell- und Zielort sowie Optionen auszuwählen.
Klicken Sie im letzten Schritt, Einstellungen auswählen, das Kästchen Stelle eine Liste der zu übertragenden Dateien über die Manifestdatei bereit.
Geben Sie den Speicherort der Manifestdatei ein.
gcloud
Fügen Sie das --manifest-file=MANIFEST_FILE
-Flag mit dem gcloud transfer jobs create
-Befehl hinzu, um die im Manifest aufgeführten Dateien oder Objekte zu übertragen.
gcloud transfer jobs create SOURCE DESTINATION \
--manifest-file=MANIFEST_FILE
MANIFEST_FILE kann einer der folgenden Werte sein:
Der Pfad zur CSV-Datei in einem Cloud Storage-Bucket:
--manifest-file=gs://my_bucket/sample_manifest.csv
Unter Manifest in Cloud Storage hochladen finden Sie Informationen zu den erforderlichen Berechtigungen, wenn der Bucket oder die Datei nicht öffentlich ist.
Der relative Pfad vom Dateisystem SOURCE, einschließlich aller angegebenen Pfade:
--manifest-file=source://relative_path/sample_manifest.csv
Der relative Pfad aus dem Dateisystem DESTINATION, einschließlich einen beliebigen angegebenen Pfad:
--manifest-file=destination://relative_path/sample_manifest.csv
REST + Clientbibliotheken
REST
Um die im Manifest aufgeführten Dateien oder Objekte zu übertragen, müssen Sie
einen createTransferJob
-API-Aufruf, der eine
transferSpec
mit dem
transferManifest
Feld hinzugefügt. Beispiel:
POST https://storagetransfer.googleapis.com/v1/transferJobs ... "transferSpec": { "posixDataSource": { "rootDirectory": "/home/", }, "gcsDataSink": { "bucketName": "GCS_NEARLINE_SINK_NAME", "path": "GCS_SINK_PATH", }, "transferManifest": { "location": "gs://my_bucket/sample_manifest.csv" } }
Die Manifestdatei kann in einem Cloud Storage-Bucket oder im
Quell- oder Zieldateisystem. Cloud Storage-Buckets müssen das Präfix gs://
und den vollständigen Pfad einschließlich des Bucket-Namens enthalten. Dateisystemspeicherorte müssen das Präfix source://
oder destination://
verwenden und sind relativ zum Dateisystem-Quell- oder Zielverzeichnis und optional zum Stammverzeichnis.
Go
Java
Node.js
Python
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 werden übersprungen, es sei denn, die Objekte überschreiben, die bereits in der Senke vorhanden sind angegeben ist.
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.