In diesem Dokument wird beschrieben, wie Daten mithilfe von Cloud Storage in einer App Engine-Anwendung gespeichert und abgerufen werden. Dabei wird die App Engine-Clientbibliothek für Cloud Storage verwendet. Es wird davon ausgegangen, dass Sie die unter Google Cloud Storage einrichten beschriebenen Aufgaben durchgeführt und somit einen Cloud Storage-Bucket aktiviert sowie die Clientbibliotheken heruntergeladen haben. Außerdem sollten Sie eine App Engine-Anwendung erstellen können, wie in der Kurzanleitung für Python 2 in einer App Engine-Standardumgebung beschrieben wird.
Erforderliche Importe
Die Datei main.py
enthält die typischen Importe für den Zugriff auf Cloud Storage über die Clientbibliothek:
Sie benötigen das os
-Modul und die app_identity
API, damit Sie zur Laufzeit den Namen des Standard-Buckets erhalten. Beachten Sie, dass Sie den Bucket-Namen auf andere Weise angeben müssen, wenn Sie den Standard-Bucket nicht verwenden.
Cloud Storage-Bucket angeben
Bevor Sie Vorgänge in Cloud Storage ausführen können, müssen Sie den Bucket-Namen angeben. Der einfachste Weg dafür ist die Verwendung des Standard-Buckets für Ihr Projekt. Diesen erhalten Sie folgendermaßen:Der Aufruf von get_default_gcs_bucket_name
ist nur erfolgreich, wenn Sie den Standard-Bucket für das Projekt erstellt haben.
Schreibvorgänge in Cloud Storage
Im folgenden Beispiel wird gezeigt, wie in den Bucket geschrieben wird:
Beachten Sie Folgendes: Im Beispiel werden beim Aufruf von open
zum Öffnen der Datei zum Schreiben bestimmte Cloud Storage-Header angegeben, die benutzerdefinierte Metadaten für die Datei festlegen. Diese Metadaten können mit cloudstorage.stat
abgerufen werden. Eine Liste von verfügbaren Headern finden Sie in der Referenz zu cloudstorage.open
.
Beachten Sie auch, dass der Header x-goog-acl
nicht festgelegt wird. Das bedeutet, dass beim Schreiben in den Bucket die standardmäßige Cloud Storage-ACL für öffentlichen Lesezugriff auf das Objekt angewendet wird.
Achten Sie außerdem auf den Aufruf von close
für die Datei, nachdem der Schreibvorgang abgeschlossen ist. Ohne diesen Aufruf wird die Datei nicht in Cloud Storage geschrieben. Nach dem Aufrufen von close
ist ein Anhängen an die Datei nicht mehr möglich. Wenn Sie eine Datei ändern möchten, müssen Sie die Datei im Schreibmodus noch einmal öffnen. Dadurch wird sie überschrieben und nicht angehängt.
Lesevorgänge in Cloud Storage
Im folgenden Beispiel wird gezeigt, wie eine Datei aus dem Bucket gelesen wird:
Das Argument filename
wird im Format YOUR_BUCKET_NAME/PATH_IN_GCS
angegeben. Das Beispiel zeigt, wie ausgewählte Zeilen aus der gelesenen Datei mit seek
angezeigt werden, in diesem Fall die erste Zeile und die letzten 1.000 Zeilen.
Beachten Sie, dass im obigen Code kein Modus angegeben ist, wenn die Datei zum Lesen geöffnet wird. Der Standardwert für open
ist der schreibgeschützte Modus.
Bucket-Inhalt auflisten
Dieser Beispielcode zeigt, wie Sie bei einem Bucket mit vielen Dateien mit den Parametern marker
und max_keys
durch eine Liste mit Inhalten des Buckets blättern können:
Beachten Sie, dass der vollständige Dateiname als eine Zeichenfolge ohne Verzeichnistrennzeichen angezeigt wird. Wenn Sie die Datei mit einer besser erkennbaren Verzeichnishierarchie darstellen möchten, setzen Sie den Parameter delimiter
auf das Verzeichnistrennzeichen, das Sie verwenden möchten.
Dateien in Cloud Storage löschen
Der folgende Code zeigt, wie Sie eine Datei mit der Methode cloudstorage.delete()
(importiert als gcs
) aus Cloud Storage löschen.
In diesem Beispiel werden die Dateien bereinigt, die im Abschnitt Schreibvorgänge in Cloud Storage in den Bucket geschrieben wurden.
Weitere Informationen
- API-Referenzdokumentation
- Beispiel für App Engine und Google Cloud Storage
- Cloud Storage-Dokumentation zur Verwendung von Cloud Storage sowie weitere Beispiele und Anleitungen