Ce document explique comment stocker et récupérer des données à l'aide de Cloud Storage dans une application App Engine à l'aide de la bibliothèque cliente App Engine pour Cloud Storage. Nous supposons ici que vous avez réalisé les tâches décrites dans la documentation Configuration de Google Cloud Storage pour activer un bucket Cloud Storage et télécharger les bibliothèques clientes. Nous supposons également que vous savez comment créer une application App Engine, comme décrit dans le guide de démarrage rapide de l'environnement standard App Engine pour Python 2.
Importations requises
Le fichier main.py
contient les importations types utilisées pour accéder à Cloud Storage via la bibliothèque cliente :
Vous avez besoin du module os
et de l'API app_identity
pour obtenir le nom du bucket par défaut au moment de l'exécution. Notez que si vous n'utilisez pas le bucket par défaut, vous avez besoin d'un autre moyen pour fournir le nom du bucket.
Spécifier le bucket Cloud Storage
Avant toute opération dans Cloud Storage, vous devez fournir le nom du bucket. Pour ce faire, le plus simple consiste à utiliser le bucket par défaut de votre projet, qui peut être obtenu comme suit :L'appel get_default_gcs_bucket_name
ne réussit que si vous avez créé le bucket par défaut pour votre projet.
Écrire dans Cloud Storage
L'exemple suivant montre comment écrire dans le bucket :
Notez que lors de l'appel open
pour l'ouverture du fichier en écriture, l'exemple spécifie certains en-têtes Cloud Storage qui écrivent des métadonnées personnalisées pour le fichier. Ces métadonnées peuvent être récupérées à l'aide de cloudstorage.stat
. Vous trouverez la liste des en-têtes compatibles dans la documentation de référence de cloudstorage.open
.
Notez également que l'en-tête x-goog-acl
n'est pas défini. Cela signifie que la liste de contrôle d'accès Cloud Storage par défaut pour la lecture publique sera appliquée à l'objet lors de son écriture dans le bucket.
Enfin, vous pouvez constater que l'appel close
ferme le fichier une fois l'écriture terminée. Si cet appel n'est pas émis, le fichier n'est pas écrit dans Cloud Storage. Sachez qu'après avoir appelé close
, vous ne pouvez plus rien ajouter au fichier. Si vous devez modifier un fichier, vous devrez le rouvrir en mode écriture. Les données sont alors écrasées et non ajoutées.
Lecture à partir de Cloud Storage
L'exemple suivant montre comment lire un fichier à partir du bucket :
L'argument filename
est spécifié au format YOUR_BUCKET_NAME/PATH_IN_GCS
. L'exemple montre comment afficher les lignes sélectionnées du fichier en cours de lecture (dans le cas présent, la ligne d'ouverture et les mille dernières lignes) à l'aide de seek
.
Notez qu'aucun mode n'est spécifié dans le code ci-dessus lorsque le fichier est ouvert en lecture. La valeur par défaut pour open
est le mode de lecture seule.
Répertorier le contenu du bucket
L'exemple de code montre comment parcourir un bucket comportant un grand nombre de fichiers, en utilisant les paramètres marker
et max_keys
pour parcourir une liste du contenu du bucket :
Notez que le nom de fichier complet est affiché comme une chaîne sans délimiteurs de répertoire. Si vous souhaitez afficher le fichier avec une hiérarchie de répertoires plus reconnaissable, définissez le paramètre delimiter
sur le délimiteur de répertoires que vous souhaitez utiliser.
Supprimer des fichiers de Cloud Storage
Le code ci-dessous montre comment supprimer un fichier de Cloud Storage à l'aide de la méthode cloudstorage.delete()
(importée en tant que gcs
).
Cet exemple nettoie les fichiers qui ont été écrits dans le bucket, tel que décrit dans la section Écrire des données dans Cloud Storage.
Étapes suivantes
- Consultez la documentation de référence sur l'API.
- Approfondissez l'utilisation de Cloud Storage et consultez des exemples et des tutoriels supplémentaires dans la documentation de Cloud Storage.