Von öffentlichen URLs zu Cloud Storage übertragen

Mit dem Storage Transfer Service können Dateien aus einer Liste öffentlicher URLs in Ihren Cloud Storage-Bucket kopiert werden.

Wenn Sie eine Übertragung erstellen, geben Sie einen Link zu einer TSV-Datei (tabulatorgetrennte Werte) mit den URLs und Details der zu übertragenden Objekte an. 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 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 das HTTP- oder HTTPS-Protokoll verwenden.
  • Der Server, der jedes Objekt hostet:
    • Der Zugriff auf das Objekt darf nicht mit einem robots.txt verweigert werden.
    • Unterstützt Range-Anfragen.
    • Gibt in jeder Antwort einen Content-Length-Header zurück.

Format für URL-Listen

Eine URL-Liste muss die folgenden Anforderungen erfüllen:

  • Die Datei muss als tabulatorgetrennte Werte 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 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. Auf dieser Seite werden die Tabulatoren als Leerzeichen dargestellt. 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:

  • HTTP- oder HTTPS-URL des 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 zwar optional, wir empfehlen jedoch dringend, sie anzugeben, um die Datenintegrität zu gewährleisten.

URL-Liste hosten

Die URL-Liste kann an einem von zwei Orten gehostet werden:

  • Eine öffentlich zugängliche URL.
  • Ein Cloud Storage-Bucket, auf den der Dienst-Agent für 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:// oder https:// 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 die Liste nicht an einem öffentlichen Ort 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.get für das Objekt. Dies kann durch Zuweisen der Rolle roles/storage.legacyObjectReader für den Bucket oder mit einer benutzerdefinierten Rolle gewährt werden.
  • Die Berechtigung storage.buckets.get für den Bucket. Dies kann durch Zuweisen der Rolle roles/storage.legacyBucketReader oder mit einer benutzerdefinierten Rolle gewährt werden.

So gewähren Sie Berechtigungen für den Dienst-Agent:

E-Mail-Adresse des Dienst-Agents suchen

  1. Rufen Sie die Referenzseite für googleServiceAccounts.get auf.

    Es wird ein interaktives Steuerfeld mit dem Titel Diese Methode testen geöffnet.

  2. 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 URL-Listen-Buckets unterscheiden.

  3. 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-Agenten 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 Hauptkonto, das Sie hinzufügen, 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.

Bei der Auswahl einer Quelle gilt Folgendes:

  1. Wählen Sie unter Quelltyp die Option URL-Liste aus und klicken Sie auf Nächster Schritt.

  2. 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 Ü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.