Antes de que puedas efectuar solicitudes al Servicio de transferencia de almacenamiento, debes asegurarte de que las API del Servicio de transferencia de almacenamiento estén habilitadas en tu proyecto, y de que tu aplicación se encuentre configurada para su autorización a través del protocolo OAuth 2.0. Te recomendamos que implementes la retirada exponencial truncada a fin de controlar los reintentos en caso de fallas en las solicitudes.
Habilita el servicio
Para acceder al Servicio de transferencia de almacenamiento mediante la biblioteca de API de Google, o de forma directa mediante la API del Servicio de transferencia de almacenamiento, se requiere que habilites la API del Servicio de transferencia de almacenamiento.
Enable the Google Storage Transfer API.
Flujo de autenticación
Debido a que todas las operaciones del Servicio de transferencia de almacenamiento se realizan sin necesidad de intervención humana o de consentimiento del usuario, el mejor flujo de autenticación para una aplicación del Servicio de transferencia de almacenamiento es de servidor a servidor, mediante una cuenta de servicio. App Engine y Compute Engine tienen cuentas de servicio integradas que puedes usar, o bien puedes crear una credencial de servicio en Google Cloud Console.
Cuando usas una cuenta de servicio, las bibliotecas cliente de las API de Google controlan el proceso de autenticación y autorización por ti, en las siguientes situaciones:
- Aplicación de App Engine
Si tu aplicación se ejecuta en App Engine, es autenticada con la cuenta de servicio predeterminada de tu aplicación de App Engine.
El código también funciona con tu emulador local de App Engine, siempre que uses Google Cloud CLI (
mvn gcloud:run
), mediante una cuenta de servicio y con la configuración de la variable de entornoGOOGLE_APPLICATION_CREDENTIALS
.Para obtener más información, consulta la sección Host local o de terceros.
- Aplicación de Compute Engine
Si tu aplicación se ejecuta en una instancia de Compute Engine, se autentica con la cuenta de servicio predeterminada de Compute Engine asociada con el proyecto.
Configura tu instancia para usar cuentas de servicio y agrega el alcance que se indica en la sección Alcance de la autorización.
Si deseas obtener más información, consulta Configura el alcance del acceso de la cuenta de servicio para las instancias en la documentación de Compute Engine.
- Host local o de terceros
Si tienes un cliente local en ejecución o si ejecutas tu programa en un entorno que no pertenece a Google Cloud, crea una cuenta de servicio nueva, descarga su archivo de claves JSON y, a continuación, configura la variable de entorno
GOOGLE_APPLICATION_CREDENTIALS
para que se oriente al archivo de claves JSON.Para obtener más información, consulta Autentícate como cuenta de servicio.
Alcance de la autorización
Las aplicaciones que tienen acceso al Servicio de transferencia de almacenamiento a través de OAuth 2.0 deben especificar el alcance de la autorización de cloud-platform
.
Alcance | Significado |
---|---|
https://www.googleapis.com/auth/cloud-platform |
Acceso completo |
Crea un cliente
Puede usar el siguiente código de muestra para crear un cliente del Servicio de transferencia de almacenamiento en cualquiera de los entornos descritos en Flujo de autenticación. Debido a que en el código se usan credenciales predeterminadas de la aplicación de Google, el código selecciona la cuenta de servicio adecuada para su uso.
A la cuenta de servicio se le debe asignar una de las siguientes funciones:
- funciones/propietario
- funciones/editor
- roles/storagetransfer.admin
- roles/storagetransfer.user
Una función personalizada que incluye, como mínimo, permisos roles/storagetransfer.user.
Si deseas obtener más información sobre cómo agregar y ver permisos a nivel de proyecto, consulta los permisos de IAM para los métodos del Servicio de transferencia de almacenamiento y los ejemplos de permisos y funciones de IAM.
Puedes verificar en la página de permisos de tu proyecto.
Java
En esta muestra, se usa la
biblioteca cliente de las API de Google para Java. La clase RetryHttpInitializerWrapper
personalizada se describe en la sección Control de reintentos.
Python
En esta muestra, se usa la biblioteca cliente de las API de Google para Python.
Control de reintentos
En este caso de fallas de RPC, debes implementar código para controlar los reintentos con una estrategia de retirada exponencial truncada.
Java
En esta muestra, se usa la biblioteca cliente de las API de Google para Java. La clase RetryHttpInitializerWrapper
controla los reintentos por ti.
Python