Cloud Storage unterstützt das Streaming von Daten aus einem Bucket zu einem Prozess, ohne dass die Daten zuerst in einer Datei gespeichert werden müssen.
Prüfsummenvalidierung beim Streaming verwenden
Sie sollten keinen Streaming-Download verwenden, wenn Sie eine Validierung der Prüfsumme benötigen, bevor die Daten zugänglich sind. Dies liegt daran, dass Streaming-Downloads den Header Range
verwenden und Cloud Storage keine Prüfsummen in der Antwort zurückgibt, die nur für den angeforderten Teil der Objektdaten gelten.
Es wird empfohlen, immer die Validierung der Prüfsumme zu verwenden, und Sie können dies tun, nachdem ein Streaming-Download abgeschlossen ist. Die Validierung nach Abschluss des Downloads bedeutet jedoch, dass beschädigte Daten während der Zeit, die für die Bestätigung der Beschädigung und deren Beseitigung benötigt wird, zugänglich sind.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die Rolle „Storage-Objekt-Betrachter“ (roles/storage.objectViewer
) für den Bucket zuzuweisen, um die erforderlichen Berechtigungen für Streaming-Downloads zu erhalten.
Diese Rolle enthält die Berechtigung, die zum Streamen von Downloads erforderlich ist. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderliche Berechtigung anzuzeigen:
Erforderliche Berechtigungen
storage.objects.get
Sie können diese Berechtigung auch mit anderen vordefinierten Rollen oder benutzerdefinierten Rollen erhalten.
Eine Anleitung zum Zuweisen von Rollen für Buckets finden Sie unter IAM mit Buckets verwenden.
Download streamen
Die folgenden Beispiele zeigen, wie Sie einen Download von einem Cloud Storage-Objekt in einen Prozess durchführen:
Console
Die Google Cloud Console unterstützt keine Streaming-Downloads. Verwenden Sie stattdessen die Google Cloud CLI.
Befehlszeile
Führen Sie den Befehl
gcloud storage cp
mit einem Bindestrich für die Ziel-URL aus und senden Sie die Daten anschließend über eine Pipeline an den Prozess.gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME - | PROCESS_NAME
Dabei gilt:
BUCKET_NAME
ist der Name des Buckets, der das Objekt enthält. Beispiel:my_app_bucket
.OBJECT_NAME
ist der Name des Objekts, das Sie zum Prozess streamen. Beispiel:data_measurements
PROCESS_NAME
ist der Name des Prozesses, an den Sie Daten senden. Beispiel:analyze_data
.
Sie können auch Daten von einem Cloud Storage-Objekt an einen Standard-Linux-Befehl wie sort streamen:
gcloud storage cp gs://my_app_bucket/data_measurements - | sort
Clientbibliotheken
C++
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C++ API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
C#
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C# API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Go API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Node.js API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage PHP API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Python API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Ruby
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Ruby API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
REST APIs
JSON API
Folgen Sie der Anleitung zum Herunterladen eines Objekts unter Berücksichtigung folgender Überlegungen, um einen Streaming-Download durchzuführen:
Bevor Sie mit dem Download beginnen, rufen Sie die Metadaten des Objekts ab und speichern Sie die Generierungsnummer des Objekts. Fügen Sie diese Generierungsnummer in jede Anfrage ein, damit keine Daten von zwei verschiedenen Generierungen heruntergeladen werden, wenn das Original überschrieben wird.
Verwenden Sie in Ihrer Anfrage den Header
Range
, um einen Teil des Gesamtobjekts abzurufen, den Sie an den lokalen Prozess senden können.Führen Sie weitere Anfragen für aufeinanderfolgende Teile des Objekts aus, bis das gesamte Objekt abgerufen wurde.
XML API
Folgen Sie der Anleitung zum Herunterladen eines Objekts unter Berücksichtigung folgender Überlegungen, um einen Streaming-Download durchzuführen:
Bevor Sie mit dem Download beginnen, rufen Sie die Metadaten des Objekts ab und speichern Sie die Generierungsnummer des Objekts. Fügen Sie diese Generierungsnummer in jede Anfrage ein, damit keine Daten von zwei verschiedenen Generierungen heruntergeladen werden, wenn das Original überschrieben wird.
Verwenden Sie in Ihrer Anfrage den Header
Range
, um einen Teil des Gesamtobjekts abzurufen, den Sie an den lokalen Prozess senden können.Führen Sie weitere Anfragen für aufeinanderfolgende Teile des Objekts aus, bis das gesamte Objekt abgerufen wurde.
Nächste Schritte
- Upload streamen
- Weitere Informationen zur Dekomprimierenden Transcodierung
- Weitere Informationen zu Uploads und Downloads