Da PHP Version 5.5 nicht mehr von der Community unterstützt wird, empfehlen wir neuen Anwendungen dringend, die PHP 7-Laufzeit zu verwenden.

Cloud Storage verwenden

Wenn Ihre PHP 5-Anwendung während der Laufzeit Dateien lesen und schreiben oder Dateien für Filme, Bilder oder andere statische Inhalte bereitstellen muss, empfehlen wir die Verwendung eines Cloud Storage-Buckets.

App Engine erstellt einen Standard-Bucket, wenn Sie eine Anwendung erstellen. Dieser Bucket bietet die ersten 5 GB Speicherplatz kostenlos und 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. Deklarieren Sie in Ihrer Anwendung Cloud Storage als Abhängigkeit, indem Sie google/cloud-storage zur composer.json-Datei Ihrer Anwendung hinzufügen und composer install im Verzeichnis Ihrer Anwendung ausführen. Weitere Informationen zu Composer

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

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 diesen Bucket nicht nutzen.

Bucket- und Objektberechtigungen festlegen

Das mit Ihrer Anwendung verknüpfte Standarddienstkonto hat alle erforderlichen Berechtigungen für den Lese- und Schreibzugriff auf die Buckets in Ihrem Projekt.

Zur Verwaltung dieser Berechtigungen nutzt jede App Engine-Anwendung ein Standarddienstkonto, das vollständigen Lese- und Schreibzugriff auf Cloud Storage-Buckets im selben Projekt wie die Anwendung bietet. Sie können die Berechtigungen des Standarddienstkontos ändern. Ihre Anwendung verliert dann aber möglicherweise den Zugriff, solange Sie ihr keine IAM-Rolle mit den erforderlichen Berechtigungen zuweisen.

Informationen dazu, wie Sie anderen Nutzern, Anwendungen oder Projekten Zugriff auf einen Bucket und dessen Inhalte gewähren, finden Sie unter Bucket-Berechtigungen festlegen und Objektberechtigungen 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.