Si votre application a besoin de lire et d'écrire des fichiers pendant l'exécution ou de diffuser des fichiers, tels que des films, des images ou tout autre contenu statique, nous vous recommandons d'utiliser un bucket Cloud Storage.
App Engine crée un bucket par défaut lorsque vous créez une application. Ce bucket fournit gratuitement les cinq premiers Go de stockage et inclut un quota gratuit d'opérations d'E/S Cloud Storage. Vous pouvez créer d'autres buckets Cloud Storage, mais seul le bucket par défaut inclut gratuitement les cinq premiers Go de stockage.
Utiliser Cloud Storage avec App Engine
Pour utiliser un bucket Cloud Storage à partir d'une application App Engine, procédez comme suit :
Affichez les noms des buckets existants dans votre projet App Engine. Vous devrez spécifier ces noms lorsque vous importerez ou téléchargerez des données à partir de Cloud Storage.
Nous vous recommandons de stocker les noms de vos buckets Cloud Storage dans les variables d'environnement de l'application plutôt que de les coder en dur dans celle-ci.
Dans votre application, déclarez Cloud Storage en tant que dépendance en procédant comme suit :
Go
En utilisant la commande
go get cloud.google.com/go/storage
. Vous pouvez également déclarer des dépendances dans le fichiergo.mod
de votre application. En savoir plus sur la spécification de dépendances.À l'aide de la bibliothèque cliente Google Cloud, importez ou téléchargez des données depuis vos buckets.
Pour plus d'informations sur la diffusion de contenu statique, reportez-vous à la page Stocker et diffuser des fichiers statiques.
Java
Ajoutez la bibliothèque au fichier des dépendances de votre application.
À l'aide de la bibliothèque cliente Google Cloud, importez ou téléchargez des données depuis vos buckets.
Pour plus d'informations sur la diffusion de contenu statique, reportez-vous à la page Stocker et diffuser des fichiers statiques.
Node.js
Dans
app.yaml
, ajoutez votre ID de projet à la valeur de l'environnementGOOGLE_CLOUD_PROJECT
. Définissez ensuite la valeur de l'environnementGCLOUD_STORAGE_BUCKET
sur le nom du bucket Cloud Storage que vous avez créé précédemment.Ajoutez
@google-cloud/storage
au fichierpackage.json
de votre application. En savoir plus sur la spécification de dépendances.À l'aide de la bibliothèque cliente Google Cloud, importez ou téléchargez des données depuis vos buckets.
Pour plus d'informations sur la diffusion de contenu statique, reportez-vous à la page Stocker et diffuser des fichiers statiques.
Consultez le fichier
README.md
pour obtenir des instructions sur l'exécution et le test en local.PHP
Ajoutez
google/cloud-storage
au fichiercomposer.json
de votre application en exécutantcomposer install
à partir du répertoire de votre application. En savoir plus sur la spécification de dépendancesEnregistrez
Google\Cloud\Storage\StorageClient
en tant que wrapper de flux pour votre application. Utilisez ensuite le protocolegs
pour lire et écrire des fichiers.Consultez un exemple d'enregistrement et d'utilisation du wrapper de flux.
Vous pouvez également utiliser directement la bibliothèque cliente Google Cloud.
Python
Ajoutez
google-cloud-storage
au fichierrequirements.txt
de votre application. En savoir plus sur la spécification de dépendances.À l'aide de la bibliothèque cliente Google Cloud, importez ou téléchargez des données depuis vos buckets.
Pour plus d'informations sur la diffusion de contenu statique, reportez-vous à la page Stocker et diffuser des fichiers statiques.
Ruby
Ajoutez
google-cloud-storage
au fichierGemfile
de votre application. En savoir plus sur la spécification de dépendances.À l'aide de la bibliothèque cliente Google Cloud, importez ou téléchargez des données depuis vos buckets.
Pour plus d'informations sur la diffusion de contenu statique, reportez-vous à la page Stocker et diffuser des fichiers statiques.
Utiliser le bucket par défaut
Lorsque vous créez une application, App Engine crée un bucket par défaut qui fournit gratuitement les cinq premiers Go de stockage. Le bucket par défaut inclut également un quota gratuit pour les opérations d'E/S Cloud Storage. Pour en savoir plus, consultez la section Tarifs, quotas et limites. L'espace de stockage au-delà de la limite des cinq Go vous sera facturé.
Le nom du bucket par défaut est au format suivant :
project-id.appspot.com
App Engine crée également un bucket servant de stockage temporaire lorsqu'il déploie de nouvelles versions de votre application. Ce bucket, nommé staging.project-id.appspot.com
, n'est utilisé que par App Engine. Les applications ne peuvent pas interagir avec lui.
Définir des autorisations sur un bucket
Le compte de service associé à votre application doit disposer d'autorisations pour lire et écrire des données dans les buckets de votre projet. Pour connaître les autorisations requises, consultez la page Rôles IAM pour Cloud Storage.
En règle générale, le compte de service associé à votre application est le compte de service App Engine par défaut.
Selon la configuration de vos règles d'administration, le compte de service par défaut peut se voir attribuer automatiquement le rôle Éditeur sur votre projet. Nous vous recommandons vivement de désactiver l'attribution automatique des rôles en appliquant la contrainte de règle d'administration iam.automaticIamGrantsForDefaultServiceAccounts
. Si vous avez créé votre organisation après le 3 mai 2024, cette contrainte est appliquée par défaut.
Si vous désactivez l'attribution automatique de rôles, vous devez choisir les rôles à attribuer aux comptes de service par défaut, puis attribuer ces rôles vous-même.
Si le compte de service par défaut dispose déjà du rôle Éditeur, nous vous recommandons de le remplacer par des rôles moins permissifs.Pour modifier les rôles du compte de service en toute sécurité, utilisez Policy Simulator pour voir l'impact de la modification, puis attribuez et révoquez les rôles appropriés.
Pour découvrir comment autoriser d'autres utilisateurs, applications ou projets à accéder à un bucket et à son contenu, consultez la section Définir des autorisations de bucket.
Utiliser Cloud Storage avec le serveur de développement local
Le serveur de développement local App Engine n'émule pas Cloud Storage. Par conséquent, toutes les requêtes Cloud Storage doivent être envoyées via Internet à un bucket Cloud Storage réel.
Tarifs, quotas et limites
Aucuns frais d'utilisation de la bande passante ne sont associés aux appels de la bibliothèque cliente Cloud Storage à Cloud Storage. Cependant, des frais d'exploitation s'appliquent. En outre, les appels sont comptabilisés dans votre quota de récupération d'URL, car la bibliothèque interagit avec Cloud Storage à l'aide du service de récupération d'URL.
Sachez que Cloud Storage est un service payant qui vous sera facturé selon la grille tarifaire de Cloud Storage.