Premiers pas avec google-cloud-storage

La configuration initiale

Google conserve une documentation sur la mise en route ici : https://cloud.google.com/storage/docs/quickstart-console

Se préparer à utiliser GCS : 1. [Créer un projet Google Cloud][1], si vous n’en avez pas déjà un. 2. [Enable billing for your project][2] pour autoriser la création de buckets. 3. (Facultatif) [Installez le SDK Google Cloud][3], qui inclut gsutil, l’utilitaire de ligne de commande de GCS. Vous pouvez également utiliser gsutil directement à partir de l’interface utilisateur Google Cloud en utilisant [Google Cloud Shell][4].

[1] : https://console.cloud.google.com/iam-admin/projects [2] : https://support.google.com/cloud/answer/6293499#enable-billing [3] : https://cloud.google.com/sdk/docs/ [4] : https://cloud.google.com/shell/docs/

Téléchargement HTTP (objets publics)

Si vous souhaitez télécharger un objet de GCS qui est visible publiquement, le moyen le plus simple consiste à utiliser un navigateur Web ou un outil de ligne de commande pour récupérer une URL avec ce modèle : https://storage.googleapis.com/bucketName/objectName.

Exemple : https://storage.googleapis.com/pub/someOfTheTeam.jpg

Télécharger des fichiers en utilisant Python

Importez les bibliothèques nécessaires :

from gcloud import storage

Définissez les variables nécessaires :

Client : regroupe la configuration nécessaire pour les demandes d’API

client = storage.Client()

Paramètres facultatifs pour Client() :

  • projet : le projet pour lequel le client agit. Sera passé lors de la création d’un sujet. S’il n’est pas passé, revient à la valeur par défaut déduite de l’environnement.
  • informations d’identification : informations d’identification OAuth2 utilisées pour la connexion. S’il n’est pas passé, revient à la valeur par défaut déduite de l’environnement.
  • http : objet HTTP pour effectuer des requêtes. S’il n’est pas passé, un objet http est créé, lié aux informations d’identification de l’objet actuel.

Bucket : sélectionne le bucket créé dans le projet via Google Cloud Console

bucket = client.get_bucket('<your-bucket-name>')

Pour plus d’informations sur les fonctions “Client”, reportez-vous à [Storage Client] [1]

Blob : Nom du fichier qui sera enregistré.

blob = bucket.blob('my-test-file.txt')

Vous pouvez également définir des répertoires comme celui-ci :

filename = "%s/%s" % (folder, filename)
blob = bucket.blob(filename)

Il existe plusieurs méthodes pour télécharger un fichier. Vous pouvez attendre un fichier dans la charge utile d’une requête POST ou PUT, ou l’avoir localement sur votre système de fichiers. Vous pouvez même envoyer du texte directement vers un fichier texte.

# Uploading string of text
blob.upload_from_string('this is test content!')

# Uploading from a local file using open()
with open('photo.jpg', 'rb') as photo:
    blob.upload_from_file(photo)

# Uploading from local file without open()
blob.upload_from_filename('photo.jpg')

Pour des informations plus détaillées sur les fonctions de téléchargement, reportez-vous à [Blob/Objets][2]

Si vous avez besoin que votre blob soit public, vous pouvez définir la confidentialité du fichier public :

blob.make_public()
url = blob.public_url

[1] : https://googlecloudplatform.github.io/google-cloud-python/stable/storage-client.html [2] : https://googlecloudplatform.github.io/google-cloud-python/stable/storage-blobs.html