Pour pouvoir adresser des requêtes au service de transfert de stockage, vous devez vérifier, à l'aide du protocole OAuth 2.0, que l'API du service de transfert de stockage est bien activée pour votre projet et que votre application est configurée pour les autorisations. Nous vous recommandons également de mettre en œuvre un intervalle exponentiel entre les tentatives tronqué en cas d'échec de la requête.
Activer le service
Pour accéder au service de transfert de stockage via une bibliothèque d'API Google ou directement à l'aide de l'API du service de transfert de stockage, vous devez activer cette API.
Enable the Google Storage Transfer API.
Flux d'authentification
Étant donné que toutes les opérations du service de transfert de stockage ne nécessitent ni intervention humaine ni consentement de l'utilisateur, le flux d'authentification le plus adapté à une application du service de transfert de stockage s'effectue de serveur à serveur, à l'aide d'un compte de service. App Engine et Compute Engine disposent de comptes de service intégrés que vous pouvez utiliser. Vous pouvez également créer un identifiant de service dans Google Cloud Console.
Lorsque vous utilisez un compte de service, les bibliothèques clientes des API Google se chargent d'exécuter le processus d'authentification et d'autorisation dans les scénarios suivants :
- Application App Engine
Si votre application s'exécute sur App Engine, elle s'authentifie avec le compte de service par défaut de votre application App Engine.
Ce code fonctionne également avec votre émulateur local App Engine tant que vous utilisez Google Cloud CLI (
mvn gcloud:run
), à l'aide d'un compte de service et en définissant la variable d'environnementGOOGLE_APPLICATION_CREDENTIALS
.Pour plus d'informations, consultez la section Hôte local ou tiers.
- Application Compute Engine
Si votre application s'exécute sur une instance Compute Engine, elle s'authentifie à l'aide du compte de service Compute Engine par défaut associé au projet.
Configurez votre instance pour qu'elle utilise des comptes de service et ajoutez le champ d'application répertorié dans la section Champ d'application des autorisations.
Pour plus d'informations, consultez la section Définir le champ d'application de l'accès au compte de service pour les instances dans la documentation de Compute Engine.
- Hôte local ou tiers
Si vous exécutez un client local ou un programme dans un environnement autre que Google Cloud, créez un compte de service, téléchargez son fichier de clé JSON, puis définissez la variable d'environnement
GOOGLE_APPLICATION_CREDENTIALS
de sorte qu'elle pointe vers le fichier de clé JSON.Pour en savoir plus, consultez la section Authentification en tant que compte de service.
Champ d'application des autorisations
Les applications qui accèdent au service de transfert de stockage via le protocole OAuth 2.0 doivent spécifier le champ d'application des autorisations cloud-platform
.
Portée | Signification |
---|---|
https://www.googleapis.com/auth/cloud-platform |
Accès complet |
Créer un client
Vous pouvez utiliser l'exemple de code ci-dessous pour créer un client de service de transfert de stockage dans l'un des environnements décrits dans la section Flux d'authentification. Étant donné que le code utilise les Identifiants par défaut de l'application Google, il sélectionne le compte de service approprié à utiliser.
Le compte de service doit disposer de l'un des rôles suivants :
- roles/owner
- roles/editor
- roles/storagetransfer.admin
- roles/storagetransfer.user
Un rôle personnalisé incluant, au minimum, les autorisations roles/storagetransfer.user
Pour en savoir plus sur l'ajout et l'affichage des autorisations au niveau du projet, consultez les pages Autorisations IAM pour l'exécution des méthodes du service de transfert de stockage et Exemples d'autorisations et de rôles IAM.
Pour vérifier vos autorisations, accédez à la page Autorisations de votre projet.
Java
Cet exemple utilise la bibliothèque cliente des API Google pour Java. La classe personnalisée RetryHttpInitializerWrapper
est décrite dans la section Gérer les tentatives.
Python
Cet exemple utilise la bibliothèque cliente des API Google pour Python.
Gérer les tentatives
Dans le cas d'échecs RPC, vous devez mettre en œuvre le code permettant de gérer les tentatives en définissant un intervalle exponentiel entre les tentatives tronqué.
Java
Cet exemple utilise la bibliothèque cliente des API Google pour Java. La classe RetryHttpInitializerWrapper
gère les nouvelles tentatives pour vous.
Python