Google Cloud Storage gestion des buckets

Google Cloud Storage (GCS) est une offre de stockage d’objets très simple et puissante proposée par Google dans le cadre de sa plate-forme Google Cloud (GCP). Il fournit aux développeurs une solution de stockage hautement durable, évolutive, cohérente et disponible. Il s'agit de la même technologie que celle utilisée par Google pour alimenter son propre stockage d'objets.. 

Il est facturable avec un payer pour ce que vous utilisez GCP vient avec une période d’essai de 60 jours. Vous pouvez donc essayer de vérifier si cela répond aux besoins de votre organisation. GCS comporte différents niveaux de service (également appelés classes de stockage), qui peuvent être choisis en fonction des besoins (une discussion détaillée à ce sujet ne relève pas de la portée de ce didacticiel). GCS peut être utilisé à diverses fins, telles que la fourniture de contenu de site Web statique / dynamique, le stockage de fichiers d'application spécifiques à l'utilisateur, la récupération d'urgence ou la création d'objets volumineux téléchargeables pour les utilisateurs..

Ceux qui ont travaillé sur GCP sauront que tout dans GCP s'articule autour de projets. Chaque projet peut avoir plusieurs des seaux autour de laquelle l'architecture de Google Cloud Storage est structurée. Les compartiments sont les conteneurs de base sur GCS qui contiennent les données stockées. Ils sont utilisés comme blocs de base pour organiser vos données et ressemblent à des dossiers sur un système d'exploitation, mais ils ne peuvent pas être imbriqués.. 

Chaque compartiment peut contenir un nombre quelconque d'objets, qui peuvent être des dossiers et / ou des fichiers. Une classe de stockage et un emplacement géographique sont affectés à un compartiment lors de leur création. Ces paramètres peuvent être spécifiés lors de la création du compartiment, mais ne peuvent pas être modifiés ultérieurement..

Les seaux ont des conventions de dénomination spécifiques qui doivent être strictement suivies, sinon GCP ne vous permettra pas de créer un seau. Les noms de seau sont globalement uniques, ils doivent donc être choisis de manière à éviter les conflits. Cependant, un nom utilisé par un compartiment supprimé peut être réutilisé.. 

En outre, le nom ne peut pas être modifié une fois qu’il a été attribué à un compartiment. La seule solution pour le modifier consiste à créer un nouveau compartiment avec le nom souhaité, à déplacer le contenu du dernier compartiment vers le nouveau, puis à supprimer le précédent..

Dans ce didacticiel, je vais expliquer comment gérer les compartiments à partir de la console Google Cloud. Ceci est suivi par un script Python où je montrerai comment effectuer les mêmes opérations par programme.

Utilisation de la console Google Cloud

Tout d'abord, voyons comment gérer les compartiments à l'aide de l'interface utilisateur Web fournie par GCP, appelée Google Cloud Console.. 

Ouvrez Storage Storage dans le navigateur Web de votre choix. Si vous êtes un utilisateur novice, vous serez d'abord invité à créer un projet. En outre, une option sera affichée pour vous inscrire pour un essai gratuit. Allez de l'avant avec l'inscription d'essai gratuite, sinon vous ne serez pas autorisé à créer un nouveau seau par vous-même. Par défaut, GCP ne fournit qu'un seul compartiment gratuit par instance App Engine.. 

Une fois cela fait avec tous ces processus formels, naviguer sur cette page devrait ouvrir la page ci-dessous.

Pour créer un nouveau compartiment, cliquez sur le bouton Créer un seau bouton mis en évidence ci-dessus. Créez un seau en remplissant le nom souhaité, comme indiqué ci-dessous. Le nom doit respecter les conventions de dénomination du compartiment..

Une fois que vous avez créé un compartiment, le navigateur GCS le répertorie. Les compartiments peuvent être supprimés en les sélectionnant dans la liste et en cliquant sur le bouton de suppression..

En cliquant sur le bouton d'actualisation, l'interface utilisateur sera renseignée avec les modifications apportées à la liste des compartiments sans actualiser la page entière..

Gérer les seaux par programme

Commençons par créer une instance de Google Compute Engine afin de permettre une démonstration rapide des concepts ciblés plutôt que de gérer des étapes d’authentification supplémentaires sur des ordinateurs locaux. Pour créer une instance GCE, ouvrez le lien et cliquez sur le bouton Créer une instance bouton comme indiqué ci-dessous.

Un formulaire apparaîtra pour vous demander des informations pertinentes que vous pourrez compléter à votre convenance. Une fois l'instance GCE créée, ouvrez le client SSH comme indiqué ci-dessous, qui s'ouvre par défaut dans une nouvelle fenêtre de navigateur..

L’écran du client SSH ressemblera à l’illustration ci-dessous. Toutes les opérations ultérieures de ce tutoriel seront effectuées directement sur le client SSH.

Écrire un script en python

Vous trouverez ci-dessous les commandes à exécuter pour configurer le serveur nouvellement créé pour un environnement de développement Python..

$ sudo apt-get mise à jour $ sudo apt-get installer python-dev python-setuptools $ sudo easy_install pip 

Vous trouverez ci-dessous la dépendance à installer pour écrire ce script..

$ sudo pip installer google-api-python-client

Sur les systèmes de production, il est déconseillé d'installer des bibliothèques utilisant "sudo". Suivez les meilleures pratiques de Python virtualenv pour cela..

gcs_bucket.py

import système de pprint import pprint de googleapiclient découverte de import de googleapiclient import http de oauth2client.client import GoogleCredentials def create_service (): credentials = GoogleCredentials.get_application_default () return discovery.build ('storage', 'v1', credentials = list_buckets (projet): service = create_service () res = service.buckets (). list (projet = projet) .execute () pprint (res) def create_bucket (projet, nom du compartiment): service = create_service () res = service.buckets () .insert (projet = projet, corps = "nom": nom du bucket) .execute () pprint (res) def delete_bucket (nom du buc): 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 " "" Utilisation: python gcs_bucket.py  La commande peut être: help: Imprime cette liste d'aide: Répertorie tous les compartiments du projet spécifié. Créez: créez le nom du compartiment fourni dans le projet spécifié. Effacez: Supprimez le nom du compartiment fourni get: Obtenez des détails sur le nom du compartiment fourni "" "if __name__ = = "__main__": si 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()

Le script Python ci-dessus illustre les opérations principales pouvant être effectuées sur un compartiment. Ceux-ci inclus:

  • création d'un nouveau seau dans un projet
  • liste de tous les compartiments d'un projet
  • obtenir des détails sur un seau spécifique
  • supprimer un compartiment spécifique

Voyons à quoi ressemblent ces opérations lorsque le script est exécuté.

$ python gcs_bucket.py Utilisation: python gcs_bucket.py  La commande peut être: help: Imprime cette liste d'aide: Répertorie tous les compartiments du projet spécifié. Créez: créez le nom du compartiment fourni dans le projet spécifié. Effacez: Supprimez le nom du compartiment fourni get: Obtenez des détails sur le nom du compartiment fourni $ 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 ',' Mises à jour ': 2016-20-10T15: 30: 52.237Z']], U'kind ': u'storage # buckets' $ python gcs_bucket.py crée tutsplus-démo 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'ststoryClass': u'STANDARD ', uTimeCreated': u'2016-10-07T05: 55: 29.638Z ', a été mis à jour' : u'2016-10-07T05: 55: 29.638Z ' $ python gcs_bucket.py obtenir le test 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' numéro de projet ': 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','upupdated ': u'2016-10-07T05: 55: 29.638Z' $ python gcs_bucket.py supprime tutsplus-demo-test "

Conclusion

Dans ce didacticiel, vous avez vu comment gérer les compartiments sur Google Cloud Storage. Cela a également été accompagné d'une petite introduction à la création d'une instance de Google Compute Engine et à son utilisation via un client SSH..

Dans le prochain tutoriel, je vais expliquer comment gérer des objets, à savoir des dossiers et des fichiers dans un compartiment..