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 Cloud Storage einrichten beschriebenen Aufgaben durchgeführt und somit einen Cloud Storage-Bucket aktiviert sowie die Clientbibliotheken heruntergeladen haben. Außerdem wird angenommen, dass Sie eine App Engine-Anwendung erstellen können, wie es in der Kurzanleitung für Python 2 in einer App Engine-Standardumgebung erläutert 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, um den Namen des Standard-Buckets zur Laufzeit abzurufen. 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 Ihr 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 Aufrufen von für das Ö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 der unterstützten Header 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.
Beachten Sie außerdem den Aufruf zum Schließen der Datei, nachdem der Schreibvorgang abgeschlossen ist. Ohne diesen Aufruf wird die Datei nicht in Cloud Storage geschrieben. Nach dem Aufrufen der Python-Dateifunktion close()
können Sie die Datei nicht mehr anhängen. Wenn Sie eine Datei ändern möchten, müssen Sie die Python-Dateifunktion open()
aufrufen, um die Datei im Schreibmodus noch einmal zu ö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:
Um ausgewählte Zeilen aus der Datei zu lesen, verwenden Sie seek()
:
In beiden Beispielen ist das Argument filename
, das Sie an cloudstorage.open()
übergeben, der Pfad zu Ihrer Datei im Format YOUR_BUCKET_NAME/PATH_IN_GCS
. Beachten Sie, dass der Standardwert für cloudstorage.open()
schreibgeschützt ist. Sie müssen beim Öffnen einer Datei für das Lesen keinen Modus angeben.
Bucket-Inhalt auflisten
Der Beispielcode zeigt, wie Sie mit den Parametern marker
und max_keys
einen Bucket mit einer großen Anzahl an Dateien durchgehen, um eine Liste der Inhalte des Buckets zu prüfen:
Beachten Sie, dass der vollständige Dateiname als eine Zeichenfolge ohne Verzeichnistrennzeichen angezeigt wird. Wenn Sie die Datei mit der besser erkennbaren Verzeichnishierarchie darstellen möchten, legen Sie für den Parameter delimiter
das gewünschte Verzeichnistrennzeichen fest.
Dateien in Cloud Storage löschen
Der folgende Code zeigt, wie Sie eine Datei aus Cloud Storage mit der Methode cloudstorage.delete()
löschen (als gcs
importiert).
In diesem Beispiel werden die Dateien bereinigt, die im Abschnitt Schreibvorgänge in Cloud Storage in den Bucket geschrieben wurden.
Weitere Informationen
- Lesen Sie sich die API-Referenzdokumentation durch
- Weitere Leitfäden und Anleitungen finden Sie in der Cloud Storage-Dokumentation.