Cloud Storage unterstützt das Streaming von Daten in einen Bucket, ohne dass die Daten zuerst in einer Datei gespeichert werden müssen. Dies ist hilfreich, wenn Sie Daten hochladen möchten, aber die endgültige Größe zu Beginn des Uploads nicht kennen, z. B. wenn Sie die Upload-Daten aus einem Prozess heraus generieren oder wenn Sie ein Objekt direkt komprimieren.
Prüfsummenvalidierung beim Streaming verwenden
Da eine Prüfsumme nur in der ersten Anfrage eines Uploads bereitgestellt werden kann, ist es häufig nicht möglich, die Prüfsummenvalidierung von Cloud Storage beim Streaming zu verwenden. Es wird empfohlen, immer die Validierung der Prüfsumme zu verwenden, und Sie können dies manuell tun, nachdem ein Streaming-Upload abgeschlossen ist. Die Validierung nach Abschluss der Übertragung 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.
Wenn Sie eine Validierung der Prüfsumme benötigen, bevor der Upload abgeschlossen ist und die Daten zugänglich sind, sollten Sie keinen Streaming-Upload verwenden. Sie sollten eine andere Uploadoption verwenden, die vor dem Abschluss des Objekts eine Validierung der Prüfsumme durchführt.
Vorbereitung
Die Voraussetzungen können je nach verwendetem Tool variieren:
Console
Sie benötigen die entsprechenden IAM-Berechtigungen, um diesen Leitfaden mit der Google Cloud Console abzuschließen. Wenn Sie den Bucket, den Sie zum Streaming aufrufen wollen, in ein Projekt hochladen möchten, das nicht Sie erstellt haben, muss Ihnen der Projektinhaber möglicherweise erst eine Rolle zuweisen, die die erforderlichen Berechtigungen enthält.
Eine Liste der erforderlichen Berechtigungen für bestimmte Aktionen finden Sie unter IAM-Berechtigungen für die Google Cloud Console.
Eine Liste der relevanten Rollen finden Sie unter Cloud Storage-Rollen. Alternativ können Sie eine benutzerdefinierte Rolle erstellen, die spezifische, eingeschränkte Berechtigungen hat.
Befehlszeile
Damit Sie diese Anleitung mit einem Befehlszeilendienstprogramm ausführen können, benötigen Sie die entsprechenden IAM-Berechtigungen. Wenn sich der Bucket, auf den Sie zum Streaming zugreifen möchten, in einem Projekt befindet, das Sie nicht erstellt haben, muss Ihnen der Projektinhaber möglicherweise erst eine Rolle zuweisen, die die erforderlichen Berechtigungen enthält.
Eine Liste der erforderlichen Berechtigungen für bestimmte Aktionen finden Sie unter IAM-Berechtigungen für gcloud storage
-Befehle.
Eine Liste der relevanten Rollen finden Sie unter Cloud Storage-Rollen. Alternativ können Sie eine benutzerdefinierte Rolle erstellen, die spezifische, eingeschränkte Berechtigungen hat.
Clientbibliotheken
Sie benötigen die entsprechenden IAM-Berechtigungen, um diesen Leitfaden mit den Cloud Storage-Clientbibliotheken abzuschließen. Wenn Sie den Bucket, den Sie zum Streaming aufrufen wollen, in ein Projekt hochladen möchten, das nicht Sie erstellt haben, muss Ihnen der Projektinhaber möglicherweise erst eine Rolle zuweisen, die die erforderlichen Berechtigungen enthält.
Sofern nicht anders angegeben, werden Clientbibliotheksanfragen über die JSON API gestellt und benötigen die unter IAM-Berechtigungen für JSON-Methoden aufgeführten Berechtigungen. Um zu erfahren, welche JSON API-Methoden aufgerufen werden, wenn Sie Anfragen über eine Clientbibliothek stellen, können Sie die Rohanfragen protokollieren.
Eine Liste der relevanten IAM-Rollen finden Sie unter Cloud Storage-Rollen. Alternativ können Sie eine benutzerdefinierte Rolle erstellen, die spezifische, eingeschränkte Berechtigungen hat.
REST APIs
JSON API
Sie benötigen die entsprechenden IAM-Berechtigungen, um diese Anleitung mit der JSON API abzuschließen. Wenn Sie den Bucket, den Sie zum Streaming aufrufen wollen, in ein Projekt hochladen möchten, das nicht Sie erstellt haben, muss Ihnen der Projektinhaber möglicherweise erst eine Rolle zuweisen, die die erforderlichen Berechtigungen enthält.
Eine Liste der für bestimmte Aktionen erforderlichen Berechtigungen finden Sie unter IAM-Berechtigungen für JSON-Methoden.
Eine Liste der relevanten Rollen finden Sie unter Cloud Storage-Rollen. Alternativ können Sie eine benutzerdefinierte Rolle erstellen, die spezifische, eingeschränkte Berechtigungen hat.
Upload streamen
Die folgenden Beispiele zeigen, wie ein Streaming-Upload von einem Prozess zu einem Cloud Storage-Objekt durchgeführt wird:
Console
Die Google Cloud Console unterstützt keine Streaming-Uploads. Verwenden Sie stattdessen die gcloud CLI.
Befehlszeile
Senden Sie die Daten über eine Pipeline an den Befehl
gcloud storage cp
und verwenden Sie bei der Quell-URL einen Bindestrich.PROCESS_NAME | gcloud storage cp - gs://BUCKET_NAME/OBJECT_NAME
Wobei:
PROCESS_NAME
ist der Name des Prozesses, von dem Sie Daten erheben. Beispiel:collect_measurements
BUCKET_NAME
ist der Name des Buckets, der das Objekt enthält. Beispiel:my_app_bucket
.OBJECT_NAME
ist der Name des Objekts, das aus den Daten erstellt wird. Beispiel:data_measurements
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 Durchführen eines fortsetzbaren Uploads, um einen Streaming-Upload durchzuführen, und beachten Sie dabei die folgenden Punkte:
Verwenden Sie mehrere Blockuploads, wenn Sie die Dateidaten hochladen.
Da Sie die Gesamtgröße der Dateien erst kennen, wenn Sie beim letzten Block angekommen sind, verwenden Sie im
Content-Range
-Header der Zwischenblöcke ein*
für die Gesamtgröße der Datei.Wenn beispielsweise der erste Block, den Sie hochladen, eine Größe von 512 KB hat, hat der Header
Content-Range
für den Block den Wertbytes 0-524287/*
. Wenn bei Ihrem Upload nach dem Hochladen des ersten Blocks noch 64.000 Byte verbleiben, senden Sie danach einen letzten Block, der die verbleibenden Byte enthält und einenContent-Range
-Header mit dem Wertbytes 524288-588287/588288
hat.
XML API
Verwenden Sie eine der folgenden Methoden, um einen Streaming-Upload durchzuführen:
Ein fortsetzbarer Upload mit den folgenden Anpassungen:
Verwenden Sie mehrere Blockuploads, wenn Sie die Dateidaten hochladen.
Da Sie die Gesamtgröße der Dateien erst kennen, wenn Sie beim letzten Block angekommen sind, verwenden Sie im
Content-Range
-Header der Zwischenblöcke ein*
für die Gesamtgröße der Datei.Wenn beispielsweise der erste Block, den Sie hochladen, eine Größe von 512 KiB hat, hat der Header
Content-Range
für den Block den Wertbytes 0-524287/*
. Wenn bei Ihrem Upload nach dem Hochladen des ersten Blocks noch 64.000 Byte verbleiben, senden Sie danach einen letzten Block, der die verbleibenden Byte enthält und einenContent-Range
-Header mit dem Wertbytes 524288-588287/588288
hat.
Nächste Schritte
- Download streamen
- Weitere Informationen zur dekomprimierenden Transcodierung
- Weitere Informationen zu Uploads und Downloads