Wenn Ihre Anwendung während der Laufzeit Dateien lesen und schreiben oder Dateien wie Filme, Bilder oder andere statische Inhalte bereitstellen soll, empfehlen wir die Verwendung eines Cloud Storage-Buckets.
Wenn Sie eine Anwendung erstellen, legt App Engine einen Standard-Bucket an. Dieser Bucket bietet die ersten 5 GB Speicherplatz kostenlos sowie ein kostenloses Kontingent für Cloud Storage-E/A-Vorgänge. Sie können auch weitere Cloud Storage-Buckets erstellen. Allerdings sind nur beim Standard-Bucket die ersten 5 GB Speicherplatz kostenlos.
Cloud Storage mit App Engine verwenden
So verwenden Sie einen Cloud Storage-Bucket aus einer App Engine-Anwendung:
Rufen Sie die Namen der vorhandenen Buckets in Ihrem App Engine-Projekt auf. Sie geben diese Namen beim Hochladen und Herunterladen von Daten in Cloud Storage an.
Statt einer Hartcodierung der Namen Ihrer Cloud Storage-Buckets in der Anwendung empfehlen wir, die Namen in den Umgebungsvariablen Ihrer Anwendung zu speichern.
So deklarieren Sie Cloud Storage in Ihrer Anwendung als Abhängigkeit:
Go
Mit dem Befehl
go get cloud.google.com/go/storage
. Alternativ können Sie Abhängigkeiten in dergo.mod
-Datei Ihrer Anwendung angeben. Weitere Informationen finden Sie unter Abhängigkeiten angeben.Verwenden Sie die Google Cloud-Clientbibliothek zum Hochladen oder Herunterladen von Daten in bzw. aus Buckets.
Weitere Informationen zum Bereitstellen statischer Inhalte finden Sie unter Statische Dateien speichern und bereitstellen.
Java
Fügen Sie die Bibliothek der Abhängigkeitsdatei Ihrer Anwendung hinzu.
Verwenden Sie die Google Cloud-Clientbibliothek zum Hochladen oder Herunterladen von Daten in bzw. aus Buckets.
Weitere Informationen zum Bereitstellen statischer Inhalte finden Sie unter Statische Dateien speichern und bereitstellen.
Node.js
Fügen Sie in
app.yaml
Ihre Projekt-ID zum UmgebungswertGOOGLE_CLOUD_PROJECT
hinzu. Legen Sie anschließend für den UmgebungswertGCLOUD_STORAGE_BUCKET
den Namen des Cloud Storage-Buckets fest, den Sie zuvor erstellt haben.Fügen Sie der Datei
package.json
Ihrer Anwendung@google-cloud/storage
hinzu. Weitere Informationen finden Sie unter Abhängigkeiten angeben.Verwenden Sie die Google Cloud-Clientbibliothek zum Hochladen oder Herunterladen von Daten in bzw. aus Buckets.
Weitere Informationen zum Bereitstellen statischer Inhalte finden Sie unter Statische Dateien speichern und bereitstellen.
Anleitungen zum lokalen Ausführen und Testen finden Sie in der Datei
README.md
.PHP
Fügen Sie
google/cloud-storage
der Dateicomposer.json
Ihrer Anwendung hinzu und führen Siecomposer install
aus dem Verzeichnis Ihrer Anwendung aus. Weitere Informationen finden Sie unter Abhängigkeiten angeben.Registrieren Sie
Google\Cloud\Storage\StorageClient
als Stream-Wrapper für Ihre Anwendung. Verwenden Sie dann dasgs
-Protokoll, um Dateien zu lesen und zu schreiben.Siehe das Beispiel für die Registrierung und Verwendung des Stream-Wrappers.
Alternativ können Sie die Google Cloud-Clientbibliothek direkt verwenden.
Python
Fügen Sie der Datei
requirements.txt
Ihrer Anwendunggoogle-cloud-storage
hinzu. Weitere Informationen finden Sie unter Abhängigkeiten angeben.Verwenden Sie die Google Cloud-Clientbibliothek zum Hochladen oder Herunterladen von Daten in bzw. aus Buckets.
Weitere Informationen zum Bereitstellen statischer Inhalte finden Sie unter Statische Dateien speichern und bereitstellen.
Ruby
Fügen Sie
google-cloud-storage
zuGemfile
Ihrer Anwendung hinzu. Weitere Informationen finden Sie unter Abhängigkeiten angeben.Verwenden Sie die Google Cloud-Clientbibliothek zum Hochladen oder Herunterladen von Daten in bzw. aus Buckets.
Weitere Informationen zum Bereitstellen statischer Inhalte finden Sie unter Statische Dateien speichern und bereitstellen.
Standard-Bucket verwenden
Wenn Sie eine Anwendung erstellen, erzeugt App Engine einen Standard-Bucket, der die ersten 5 GB Speicherplatz kostenlos zur Verfügung stellt. Der Standard-Bucket enthält auch ein kostenloses Kontingent für Cloud Storage-E/A-Vorgänge. Ausführliche Informationen finden Sie unter Preise, Kontingente und Limits. Speicherressourcen, die über das Limit von 5 GB hinausgehen, werden Ihnen in Rechnung gestellt.
Der Name des Standard-Buckets hat folgendes Format:
project-id.appspot.com
Wenn App Engine neue Versionen Ihrer Anwendung bereitstellt, erstellt es auch einen Bucket für die temporäre Speicherung. Dieser Bucket mit dem Namen staging.project-id.appspot.com
wird nur von App Engine verwendet. Anwendungen können mit diesem Bucket nicht interagieren.
Bucket-Berechtigungen festlegen
Das mit Ihrer Anwendung verknüpfte Dienstkonto benötigt Berechtigungen zum Lesen und Schreiben in die Buckets in Ihrem Projekt. Informationen zu den erforderlichen Berechtigungen finden Sie unter IAM-Rollen für Cloud Storage.
In der Regel ist das mit Ihrer Anwendung verknüpfte Dienstkonto das App Engine-Standarddienstkonto.
Abhängig von der Konfiguration Ihrer Organisationsrichtlinie kann dem Standarddienstkonto für Ihr Projekt automatisch die Rolle "Bearbeiter" zugewiesen werden. Wir empfehlen dringend, die automatische Rollenzuweisung zu deaktivieren, indem Sie die
Einschränkung der Organisationsrichtlinien iam.automaticIamGrantsForDefaultServiceAccounts
erzwingen. Wenn Sie Ihre Organisation nach dem 3. Mai 2024 erstellt haben, wird diese Einschränkung standardmäßig erzwungen.
Wenn Sie die automatische Rollenzuweisung deaktivieren, müssen Sie entscheiden, welche Rollen den Standarddienstkonten zugeteilt werden sollen, und diese Rollen dann selbst zuweisen.
Wenn das Standarddienstkonto bereits die Rolle "Bearbeiter" hat, sollten Sie die Rolle "Bearbeiter" durch weniger strikte Rollen ersetzen. Verwenden Sie zum sicheren Ändern der Rollen des Dienstkontos Policy Simulator, um die Auswirkungen der Änderung zu sehen, und weisen Sie die entsprechenden Rollen zu und widerrufen Sie sie.
Informationen dazu, wie Sie anderen Nutzern, Anwendungen oder Projekten Zugriff auf einen Bucket und dessen Inhalte gewähren, finden Sie unter Bucket-Berechtigungen festlegen.
Cloud Storage mit dem lokalen Entwicklungsserver verwenden
Cloud Storage wird vom lokalen Entwicklungsserver von App Engine nicht emuliert. Deshalb müssen alle Cloud Storage-Anfragen über das Internet an einen tatsächlichen Cloud Storage-Bucket gesendet werden.
Preise, Kontingente und Beschränkungen
Für Cloud Storage-Aufrufe über die Cloud Storage-Clientbibliothek fallen keine Bandbreitengebühren an. Es fallen jedoch Vorgangskosten an. Außerdem werden die Aufrufe von Ihrem URL-Abrufkontingent abgezogen, da die Bibliothek den URL-Abrufdienst nutzt, um mit Cloud Storage zu interagieren.
Beachten Sie, dass Cloud Storage ein kostenpflichtiger Dienst ist. Die Gebühren richten sich nach der Preisübersicht für Cloud Storage.