Mit dem Storage Transfer Service können Sie Dateien aus einer Liste öffentlicher URLs in Ihren Cloud Storage-Bucket kopieren.
Wenn Sie eine Übertragung erstellen, geben Sie einen Link zu einer TSV-Datei (Tabulatorgetrennte Werte) an, die die URLs und Details der zu übertragenden Objekte enthält. Die TSV-Datei kann an einem beliebigen öffentlich zugänglichen HTTP- oder HTTPS-Speicherort gehostet oder in einem Cloud Storage-Bucket gespeichert werden.
Auf dieser Seite wird beschrieben, wie Sie eine URL-Liste erstellen und an den Befehl zum Erstellen von Jobs übergeben.
Anforderungen an Quelldateien
- URLs müssen öffentlich zugänglich sein und HTTP- oder HTTPS-Protokolle verwenden.
- Der Server, der jedes Objekt hostet:
- Der Zugriff auf das Objekt darf nicht mit einer
robots.txt
verweigert werden. - Unterstützt
Range
-Anfragen. - Gibt in jeder Antwort einen
Content-Length
-Header zurück.
- Der Zugriff auf das Objekt darf nicht mit einer
Format für URL-Listen
Eine URL-Liste muss die folgenden Anforderungen erfüllen:
- Die Datei muss als tabulatorgetrennte Wertedatei formatiert sein.
- URLs müssen in lexikografischer Reihenfolge in UTF-8 sortiert werden.
- In der ersten Zeile muss
TsvHttpData-1.0
angegeben werden. - Geben Sie nach der ersten Zeile ein Objekt pro Zeile an.
- Jede Zeile muss die URL enthalten. Optional können auch die Dateigröße und die base64-codierte MD5-Prüfsumme des Objekts angegeben werden.
Das folgende Beispiel zeigt eine TSV-Datei, die zwei zu übertragende Objekte angibt. Hinweis: Auf dieser Seite werden Tabulatoren als Leerzeichen dargestellt. Verwenden Sie in Ihrer eigenen Datei Tabulatoren zwischen den Feldern.
TsvHttpData-1.0
https://example.com/myfile.pdf 1357 wHENa08V36iPYAsOa2JAdw==
https://example2.com/images/dataset1/flower.png 2468 R9acAaveoPd2y8nniLUYbw==
Jede Zeile enthält:
- HTTP- oder HTTPS-URL des Quellobjekts.
(Optional) Größe des Objekts in Byte.
Achten Sie darauf, dass die angegebene Größe mit der tatsächlichen Größe des Objekts beim Abrufen übereinstimmt. Wenn die Größe des Objekts, das von Cloud Storage empfangen wird, nicht mit der angegebenen Größe übereinstimmt, schlägt die Objektübertragung fehl.
Optional: Die base64-codierte MD5-Prüfsumme des Objekts.
Achten Sie darauf, dass die angegebene MD5-Prüfsumme mit der aus den übertragenen Byte berechneten MD5-Prüfsumme übereinstimmt. Wenn die MD5-Prüfsumme des von Cloud Storage empfangenen Objekts nicht mit der angegebenen MD5-Prüfsumme übereinstimmt, schlägt die Objektübertragung fehl.
Die Werte für die Objektgröße und die MD5-Prüfsumme sind zwar optional, werden aber dringend empfohlen, um die Datenintegrität zu gewährleisten.
URL-Liste hosten
Die URL-Liste kann an einem der folgenden beiden Speicherorte gehostet werden:
- Eine öffentlich zugängliche URL.
Ein Cloud Storage-Bucket, für den dem Dienst-Agent für den Storage Transfer Service Zugriff gewährt wurde.
Öffentlich zugängliche URLs
Wenn Sie die URL-Liste unter einer öffentlich zugänglichen URL speichern, gelten die folgenden Anforderungen:
- Die URL muss mit
http://
oderhttps://
beginnen. - Der Server muss einen starken
Etag
-Header in der HTTP-Antwort festlegen, wenn er die URL-Liste zurückgibt.
Sie können die Liste beispielsweise in einem Cloud Storage-Bucket speichern und das Objekt öffentlich freigeben, um einen Link zu erhalten.
Cloud Storage-Buckets
Wenn Sie Ihre Liste nicht an einem öffentlichen Speicherort speichern möchten, können Sie sie in einem Cloud Storage-Bucket speichern und dem Kundenservicemitarbeiter Zugriff auf den Storage Transfer Service gewähren.
Dem Kundenservicemitarbeiter müssen die folgenden Berechtigungen gewährt werden:
- Die Berechtigung
storage.object.get
für das Objekt. Sie können dies tun, indem Sie die Rolleroles/storage.legacyObjectReader
für den Bucket gewähren oder eine benutzerdefinierte Rolle verwenden. - Die
storage.buckets.get
-Berechtigung für den Bucket. Sie können diese Berechtigung durch Gewähren der Rolleroles/storage.legacyBucketReader
oder einer benutzerdefinierten Rolle gewähren.
So gewähren Sie Berechtigungen für den Dienst-Agent:
E-Mail-Adresse des Dienst-Agents suchen
Rufen Sie die Referenzseite
googleServiceAccounts.get
auf.Es wird ein interaktives Steuerfeld mit dem Titel Diese Methode testen geöffnet.
Geben Sie im Steuerfeld unter Anfrageparameter Ihre Projekt-ID ein. Das hier angegebene Projekt muss das Projekt sein, das Sie zum Verwalten des Storage Transfer Service verwenden. Dieses kann sich vom Projekt des Buckets mit der URL-Liste unterscheiden.
Klicken Sie auf Ausführen.
Die E-Mail-Adresse des Kundenservicemitarbeiters wird als Wert von accountEmail
zurückgegeben und hat das Format project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
.
Kopieren Sie diesen Wert.
Erforderliche Rollen gewähren
Wenn Sie dem Dienst-Agent die Rolle roles/storage.objectViewer
und die Rolle roles/storage.bucketViewer
für den Bucket mit der URL-Liste zuweisen möchten, folgen Sie der Anleitung unter IAM-Richtlinien für Buckets festlegen und verwalten.
Das hinzugefügte Hauptkonto ist die E-Mail-Adresse des Dienst-Agents. Falls erforderlich, ist serviceAccount
die Haupt-ID. Beispiel: serviceAccount:project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
Übertragungsjob für URL-Liste erstellen
So legen Sie beim Erstellen eines Übertragungsjobs eine URL-Liste fest:
Google Cloud Console
Folgen Sie der Anleitung unter Übertragungsjob erstellen.
Beachten Sie bei der Auswahl einer Quelle Folgendes:
Wählen Sie unter Quelltyp die Option URL-Liste aus und klicken Sie auf Nächster Schritt.
Geben Sie unter URL der TSV-Datei die URL zu Ihrer TSV-Datei (Tabulatorgetrennte Werte) ein. Die URL ist entweder eine HTTP-/HTTPS-Adresse (z.B.
https://example.com/urllist.tsv
) oder ein Cloud Storage-Pfad (z.B.gs://my-bucket/urllist.tsv
).
gcloud-CLI
Verwenden Sie zum Erstellen eines neuen Übertragungsjobs den Befehl gcloud transfer jobs create
.
gcloud transfer jobs create \
SOURCE DESTINATION
Bei der Übertragung von URL-Listen ist der Wert von SOURCE die URL der TSV-Datei. Die URL ist entweder eine HTTP-/HTTPS-Adresse (z.B. https://example.com/urllist.tsv
) oder ein Cloud Storage-Pfad (z.B. gs://my-bucket/urllist.tsv
).
Weitere Informationen zum Erstellen von Übertragungen mit der gcloud CLI finden Sie unter Übertragungsjobs erstellen.
REST
Wenn Sie einen Übertragungsjob für eine URL-Liste mit der REST API erstellen möchten, geben Sie die URL der TSV-Datei im Feld listUrl
an:
{
"projectId": "PROJECT_ID",
"transferSpec": {
"httpDataSource": {
"listUrl": "URL"
},
"gcsDataSink": {
"bucketName": "DESTINATION_BUCKET"
}
},
"status": "ENABLED"
}
Der Wert von URL ist entweder eine HTTP-/HTTPS-Adresse (z.B. https://example.com/urllist.tsv
) oder ein Cloud Storage-Pfad (z.B. gs://my-bucket/urllist.tsv
).
Weitere Informationen zum Erstellen von Übertragungen mit der REST API finden Sie in der Referenz zur REST API.