Cloud Storage verwenden

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:

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

  2. 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 der go.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 Umgebungswert GOOGLE_CLOUD_PROJECT hinzu. Legen Sie anschließend für den Umgebungswert GCLOUD_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 Datei composer.json Ihrer Anwendung hinzu und führen Sie composer 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 das gs-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 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.

    Ruby

    Fügen Sie google-cloud-storage zu Gemfile 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.