Von öffentlichen URLs zu Cloud Storage übertragen

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.

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.0 angegeben 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:// 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 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.get für das Objekt. Diese Berechtigung kann gewährt werden, indem Sie dem Bucket die Rolle roles/storage.legacyObjectReader oder eine benutzerdefinierte Rolle zuweisen.
  • Die Berechtigung storage.buckets.get für den Bucket. Diese Berechtigung kann gewährt werden, indem Sie die Rolle roles/storage.legacyBucketReader oder eine benutzerdefinierte Rolle zuweisen.

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

E-Mail-Adresse des Dienst-Agents suchen

  1. Rufen Sie die googleServiceAccounts.get Referenz Seite 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 Buckets mit der URL-Liste 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-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:

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