Mit dem Storage Transfer Service können Sie Dateien aus einer Liste öffentlicher URLs in Ihren Cloud Storage-Bucket kopieren.
Beim Erstellen einer Übertragung 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 öffentlich zugänglichen HTTP- oder HTTPS-Speicherort gehostet oder in einem Cloud Storage-Bucket gespeichert werden.
Auf dieser Seite wird erklärt, wie Sie eine URL-Liste erstellen und an den Befehl zum Erstellen von Jobs übergeben.
Anforderungen an die Quelldatei
- URLs müssen öffentlich zugänglich sein und HTTP- oder HTTPS-Protokolle verwenden.
- Der Server, auf dem die einzelnen Objekte gehostet werden:
- Darf den Zugriff auf das Objekt nicht mit einer
robots.txt-Datei verweigern. - Unterstützt
Range-Anfragen. - Gibt in jeder Antwort einen
Content-Length-Header zurück.
- Darf den Zugriff auf das Objekt nicht mit einer
Format für URL-Listen
Eine URL-Liste muss die folgenden Anforderungen erfüllen:
- Die Datei muss als TSV-Datei formatiert sein.
- URLs müssen in lexikografischer Reihenfolge in UTF-8 sortiert sein.
- In der ersten Zeile muss
TsvHttpData-1.0angegeben sein. - Nach der ersten Zeile muss ein Objekt pro Zeile angegeben werden.
- Jede Zeile muss die URL enthalten und kann auch die Dateigröße und die base64-codierte MD5-Prüfsumme des Objekts enthalten.
Das folgende Beispiel zeigt eine TSV-Datei, die zwei zu übertragende Objekte angibt. Beachten Sie, dass auf dieser Seite die Tabulatoren als Leerzeichen dargestellt werden. In Ihrer eigenen Datei müssen Sie Tabulatoren zwischen den Feldern verwenden.
TsvHttpData-1.0
https://example.com/myfile.pdf 1357 wHENa08V36iPYAsOa2JAdw==
https://example2.com/images/dataset1/flower.png 2468 R9acAaveoPd2y8nniLUYbw==
Jede Zeile enthält:
- Die HTTP- oder HTTPS-URL eines Quellobjekts.
(Optional) Die 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 optional. Wir empfehlen jedoch dringend, sie anzugeben, um die Datenintegrität sicherzustellen.
URL-Liste hosten
Die URL-Liste kann an einem von zwei Speicherorten gehostet werden:
- Eine öffentlich zugängliche URL.
Ein Cloud Storage-Bucket, für den der Dienst-Agent für den Storage Transfer Service Zugriff hat.
Ö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 dazu 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 Dienst-Agent für den Storage Transfer Service Zugriff gewähren.
Dem Dienst-Agent müssen die folgenden Berechtigungen gewährt werden:
- Die Berechtigung
storage.object.getfür das Objekt. Diese Berechtigung kann gewährt werden, indem Sie dem Bucket die Rolleroles/storage.legacyObjectReaderoder eine benutzerdefinierte Rolle zuweisen. - Die Berechtigung
storage.buckets.getfür den Bucket. Diese Berechtigung kann gewährt werden, indem Sie die Rolleroles/storage.legacyBucketReaderoder eine benutzerdefinierte Rolle zuweisen.
So gewähren Sie Berechtigungen für den Dienst-Agent:
E-Mail-Adresse des Dienst-Agents suchen
Rufen Sie die
googleServiceAccounts.getReferenz Seite 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 Dienst-Agents 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 roles/storage.objectViewer Rolle und die
roles/storage.bucketViewer Rolle 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, lautet die Hauptkonto-ID serviceAccount. Beispiel:
serviceAccount:project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com.
Übertragungsjob für URL-Liste erstellen
So geben Sie beim Erstellen eines Übertragungsjobs eine URL-Liste an:
Google Cloud Console
Folgen Sie der Anleitung unter Übertragungsjob erstellen.
So wählen Sie eine Quelle aus:
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 tabulatorgetrennten Werte (TSV)-Datei an. 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 Übertragungen 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 REST API-Referenz.