Cloud Storage unterstützt das Streamen von Objektlesevorgängen. So kann eine Anwendung oder ein Prozess Objekt-Bytestreams in Echtzeit direkt über die Netzwerkverbindung nutzen, ohne eine Kopie der Daten auf einer lokalen Festplatte oder in einem persistenten Speicher zu speichern.
Wenn Sie ein Objekt herunterladen und in Ihrem lokalen Dateisystem speichern möchten, lesen Sie stattdessen Objekte als Dateien herunterladen.
Prüfsummenvalidierung beim Streaming von Lesevorgängen verwenden
Verwenden Sie keinen Streaming-Lesevorgang, wenn vor der Datenverarbeitung eine Validierung der Prüfsumme erforderlich ist. Da bei Streaming-Lesevorgängen in der Regel der HTTP-Header Range verwendet wird, gibt Cloud Storage keine Prüfsummen zurück, die sich nur auf einen beliebigen angeforderten Teil der Objektdaten beziehen. Mit Serverprüfsummen wird das gesamte Objekt validiert. Das bedeutet, dass beschädigte Daten gelesen und verarbeitet werden können, bevor der gesamte Stream abgeschlossen und validiert ist.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die Rolle „Storage Object Viewer“ (roles/storage.objectViewer) für den Bucket zuzuweisen, um die erforderlichen Berechtigungen für das Streamen von Lesevorgängen zu erhalten.
Diese Rolle enthält die erforderliche Berechtigung zum Streamen von Lesevorgängen. 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 mit benutzerdefinierten Rollen erhalten.
Eine Anleitung zum Zuweisen von Rollen für Buckets finden Sie unter IAM-Richtlinien für Buckets festlegen und verwalten.
Objektlesevorgang streamen
Die folgenden Beispiele zeigen, wie Sie einen Streaming-Lesevorgang von einem Cloud Storage-Objekt in einen Prozess durchführen:
Console
Die Google Cloud Console unterstützt keine Streaming-Lesevorgänge. Verwenden Sie stattdessen die Google Cloud CLI.
Befehlszeile
Führen Sie den Befehl
gcloud storage cpmit 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_NAMEist der Name des Buckets, der das Objekt enthält. Beispiel:my_app_bucket.OBJECT_NAMEist der Name des Objekts, das Sie zum Prozess streamen. Beispiel:data_measurementsPROCESS_NAMEist 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 Clientbibliotheken 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 Clientbibliotheken 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 Clientbibliotheken 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 Clientbibliotheken 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 Clientbibliotheken 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 Clientbibliotheken 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 Clientbibliotheken 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 Clientbibliotheken einrichten.
Rust
REST APIs
JSON API
Folgen Sie der Anleitung zum Herunterladen eines Objekts unter Berücksichtigung folgender Überlegungen, um einen Streaming-Lesevorgang durchzuführen:
Bevor Sie mit dem Lesen beginnen, rufen Sie die Metadaten des Objekts ab und speichern Sie die Generierungsnummer des Objekts. Fügen Sie diese Generationsnummer in jede Anfrage ein, damit keine Daten von zwei verschiedenen Generierungen gelesen 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-Lesevorgang durchzuführen:
Bevor Sie mit dem Lesen beginnen, rufen Sie die Metadaten des Objekts ab und speichern Sie die Generierungsnummer des Objekts. Fügen Sie diese Generationsnummer in jede Anfrage ein, damit keine Daten von zwei verschiedenen Generierungen gelesen 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 zum Lesen und Herunterladen von Objekten