Google Cloud Storage Verwalten von Buckets

Google Cloud Storage (GCS) ist ein sehr einfaches und leistungsstarkes Objektspeicherungsangebot von Google als Teil seiner Google Cloud Platform (GCP). Sie bietet Entwicklern eine äußerst robuste, skalierbare, konsistente und verfügbare Speicherlösung. Dieselbe Technologie nutzt Google, um ihren eigenen Objektspeicher zu betreiben. 

Es ist abrechenbar mit einem bezahlen Sie für das, was Sie verwenden GCP wird mit einem 60-tägigen Testzeitraum ausgeliefert. Sie können also kostenlos testen, ob es den Anforderungen Ihres Unternehmens entspricht. GCS verfügt über verschiedene Service-Levels (auch als Speicherklassen bezeichnet), die je nach Bedarf ausgewählt werden können (eine ausführliche Erörterung hierzu ist nicht Gegenstand dieses Tutorials). GCS kann für verschiedene Zwecke verwendet werden, z. B. zum Bereitstellen statischer / dynamischer Websiteinhalte, zum Speichern benutzerspezifischer Anwendungsdateien, zur Notfallwiederherstellung oder zum Herunterladen großer Datenobjekte für Benutzer.

Diejenigen, die an GCP gearbeitet haben, werden wissen, dass sich alles in GCP um Projekte dreht. Jedes Projekt kann viele haben Eimer um welche die Architektur von Google Cloud Storage strukturiert ist. Buckets sind die Basiscontainer in GCS, die die gespeicherten Daten enthalten. Diese werden als Basisblöcke zum Organisieren Ihrer Daten verwendet und sehen wie Ordner auf einem Betriebssystem aus. Sie können jedoch nicht verschachtelt werden. 

Jeder Bereich kann eine beliebige Anzahl von Objekten enthalten, die Ordner und / oder Dateien sein können. Ein Bucket wird beim Erstellen einer Speicherklasse und einem geografischen Ort zugewiesen. Diese Einstellungen können beim Erstellen des Buckets festgelegt werden, können jedoch später nicht geändert werden.

Für Buckets gelten bestimmte Namenskonventionen, die strikt beachtet werden müssen. Andernfalls können Sie mit GCP keinen Bucket erstellen. Bucket-Namen sind global eindeutig und müssen daher so ausgewählt werden, dass Konflikte vermieden werden. Ein Name, der von einem gelöschten Bucket verwendet wird, kann jedoch wiederverwendet werden. 

Der Name kann auch nicht geändert werden, nachdem er einem Bucket zugewiesen wurde. Die einzige Lösung, wenn Sie es ändern möchten, besteht darin, einen neuen Bucket mit dem gewünschten Namen zu erstellen, den Inhalt aus dem vorherigen Bucket in den neuen zu verschieben und dann den vorherigen Bucket zu löschen.

In diesem Tutorial werde ich behandeln, wie Sie Buckets über die Google Cloud Console verwalten. Es folgt ein Python-Skript, in dem ich die programmgesteuerte Ausführung derselben Operationen demonstrieren werde.

Google Cloud Console verwenden

Sehen wir uns zunächst an, wie Sie Buckets mithilfe der Web-Benutzeroberfläche verwalten, die von GCP (Google Cloud Console) bereitgestellt wird. 

Öffnen Sie den Storage Browser in einem Webbrowser Ihrer Wahl. Wenn Sie das erste Mal ein Benutzer sind, werden Sie aufgefordert, zuerst ein Projekt zu erstellen. Es wird auch eine Option angezeigt, um sich für eine kostenlose Testversion anzumelden. Fahren Sie mit der kostenlosen Testanmeldung fort. Andernfalls können Sie nicht selbst einen neuen Bucket erstellen. Standardmäßig stellt GCP nur einen freien Bereich pro App Engine-Instanz bereit. 

Wenn Sie mit all diesen formalen Prozessen fertig sind, wird beim Navigieren zu dieser Seite die unten abgebildete Seite geöffnet.

Um einen neuen Bucket zu erstellen, klicken Sie auf Eimer erstellen Schaltfläche oben hervorgehoben. Erstellen Sie einen Eimer, indem Sie wie unten gezeigt einen gewünschten Namen eingeben. Der Name sollte den Bucket-Namenskonventionen folgen.

Nachdem Sie einen Bucket erstellt haben, listet der GCS-Browser ihn auf. Buckets können gelöscht werden, indem Sie sie aus der Liste auswählen und auf die Schaltfläche "Löschen" klicken.

Durch Klicken auf die Aktualisierungsschaltfläche werden alle Änderungen an der Liste der Buckets auf der Benutzeroberfläche angezeigt, ohne die gesamte Seite zu aktualisieren.

Buckets programmgesteuert verwalten

Lassen Sie uns zunächst eine Instanz der Google Compute Engine erstellen, die eine schnelle Demonstration der Zielkonzepte ermöglicht, anstatt zusätzliche Authentifizierungsschritte auf lokalen Computern auszuführen. Um eine GCE-Instanz zu erstellen, öffnen Sie den Link und klicken Sie auf Instanz erstellen wie unten gezeigt.

In einem Formular werden Sie nach relevanten Details gefragt, die Sie nach Belieben ausfüllen können. Öffnen Sie nach dem Erstellen der GCE-Instanz den SSH-Client wie unten gezeigt, der standardmäßig in einem neuen Browserfenster geöffnet wird.

Der SSH-Client-Bildschirm sieht etwa wie unten dargestellt aus. Alle weiteren Vorgänge in diesem Lernprogramm werden direkt auf dem SSH-Client selbst ausgeführt.

Ein Python-Skript schreiben

Nachfolgend finden Sie die Befehle, die Sie ausführen müssen, um den neu erstellten Server für eine Python-Entwicklungsumgebung einzurichten.

$ sudo apt-get Update $ sudo apt-get installieren python-dev python-setuptools $ sudo easy_install pip 

Nachfolgend ist die Abhängigkeit aufgeführt, die zum Schreiben dieses Skripts installiert werden muss.

$ sudo pip installieren google-api-python-client

Auf Produktionssystemen ist es nicht ratsam, Bibliotheken mit "sudo" zu installieren. Befolgen Sie dazu die bewährten Methoden von Python virtualenv.

gcs_bucket.py

import sys aus pprint import pprint aus googleapiclient import Discovery aus googleapiclient import http aus oauth2client.client import GoogleCredentials def create_service (): credentials = GoogleCredentials.get_application_default () return discovery.build ('storage', 'v1') def list_buckets (projekt): service = create_service () res = service.buckets (). list (project = project) .execute () pprint (res) def create_bucket (project, bucket_name): service = create_service () res = service.buckets () .insert (project = project, body = "name": bucket_name) .execute () pprint (res) def delete_bucket (bucket_name): service = create_service () res = service.buckets (). delete (bucket =) bucket_name) .execute () pprint (res) def get_bucket (bucket_name): service = create_service () res = service.buckets (). get (bucket = bucket_name) .execute () pprint (res) def print_help (): print " "" Verwendung: python gcs_bucket.py  Der Befehl kann Folgendes sein: help: Diese Hilfeliste wird gedruckt. Listet alle Buckets in dem angegebenen Projekt auf. Create: Erstellt den angegebenen Bucket-Namen in dem angegebenen Projekt. Delete: Löscht den angegebenen Bucket-Namen = "__main__": wenn len (sys.argv) < 2 or sys.argv[1] == "help" or \ sys.argv[1] not in ['list', 'create', 'delete', 'get']: print_help() sys.exit() if sys.argv[1] == 'list': if len(sys.argv) == 3: list_buckets(sys.argv[2]) sys.exit() else: print_help() sys.exit() if sys.argv[1] == 'create': if len(sys.argv) == 4: create_bucket(sys.argv[2], sys.argv[3]) sys.exit() else: print_help() sys.exit() if sys.argv[1] == 'delete': if len(sys.argv) == 3: delete_bucket(sys.argv[2]) sys.exit() else: print_help() sys.exit() if sys.argv[1] == 'get': if len(sys.argv) == 3: get_bucket(sys.argv[2]) sys.exit() else: print_help() sys.exit()

Das obige Python-Skript veranschaulicht die wichtigsten Vorgänge, die für einen Bucket ausgeführt werden können. Diese schließen ein:

  • Anlegen eines neuen Buckets in einem Projekt
  • Auflistung aller Buckets in einem Projekt
  • Details eines bestimmten Eimers abrufen
  • einen bestimmten Eimer löschen

Mal sehen, wie diese Operationen aussehen, wenn das Skript ausgeführt wird.

$ python gcs_bucket.py Verwendung: python gcs_bucket.py  Befehl kann sein: help: Diese Hilfeliste wird gedruckt. Listet alle Buckets in dem angegebenen Projekt auf. Create: Erstellt den angegebenen Bucket-Namen in dem angegebenen Projekt. Delete: Löscht den angegebenen Bucket-Namen. Get: Ermittelt Details zum angegebenen Bucket-Namen. $ Python gcs_bucket.py list tutsplus-demo u'items ': [u'etag': u'CAE = ', u'id': u'tutsplus-demo.appspot.com ', u'kind': u'storage # bucket ', u'location ': u'US', u'metageneration ': u'1', u'name ': u'tutsplus-demo.appspot.com', u'projectNumber ': u'1234567890', u'selfLink ' : u'https: //www.googleapis.com/storage/v1/b/tutsplus-demo.appspot.com ', u'storageClass': u'STANDARD ', u'timeCreated': u'2016-10-05T15 : 30: 52.237Z ', u'updated': u'2016-10-05T15: 30: 52.237Z '], u'kind': u'storage # buckets ' $ python gcs_bucket.py erstellt tutsplus-demo tutsplus -demo-test u'etag ': u'CAE =', u'id ': u'tutsplus-demo-test', u'kind ': u'storage # bucket', u'location ': u'US ', u'metageneration': u'1 ', u'name': u'tutsplus-demo-test ', u'projectNumber': u'1234567890 ', u'selfLink': u'https: //www.goog leapis.com/storage/v1/b/tutsplus-demo-test ', u'storageClass': u'STANDARD ', u'timeCreated': u'2016-10-07T05: 55: 29.638Z ', u'updated' : u'2016-10-07T05: 55: 29.638Z ' $ python gcs_bucket.py tutsplus-demo-test u'etag': u'CAE = ', u'id': u'tutsplus-demo-test ', u'kind': u'storage # bucket ', u'location': u'US ', u'metageneration': u'1 ', u'name': u'tutsplus-demo-test ', u' projectNumber ': u'1234567890', u'selfLink ': u'https: //www.googleapis.com/storage/v1/b/tutsplus-demo-test', u'storageClass ': u'STANDARD', u ' timeCreated ': u'2016-10-07T05: 55: 29.638Z', u'updated ': u'2016-10-07T05: 55: 29.638Z' $ python gcs_bucket.py tutsplus-demo-test löschen "

Fazit

In diesem Lernprogramm haben Sie erfahren, wie Sie Buckets in Google Cloud Storage verwalten. Dies wurde auch von einer kleinen Einführung in das Erstellen einer Google Compute Engine-Instanz und deren Verwendung über einen SSH-Client begleitet.

Im nächsten Tutorial werde ich behandeln, wie Objekte verwaltet werden, d. H. Ordner und Dateien in einem Bucket.