En esta página, se describe cómo usar gsutil y las bibliotecas cliente de Cloud Storage para generar fácilmente URL firmadas. Estas URL otorgan acceso de lectura o escritura por tiempo limitado a un recurso específico de Cloud Storage. Cualquier persona que cuente con la URL firmada podrá usarla mientras está activa, independientemente de si tiene una Cuenta de Google. Para obtener más información sobre las URL firmadas, consulta la Descripción general de las URL firmadas. Para crear URL firmadas por tu cuenta, consulta el Proceso de firma V4 con tu propio programa.
Crea una URL firmada para descargar un objeto
Para crear una URL firmada que pueda obtener un objeto de un bucket, sigue estos pasos:
gsutil
Genera una clave privada nueva o usa una clave privada existente para una cuenta de servicio. La clave puede estar en formato JSON o PKCS12.
Para obtener más información sobre las claves privadas y cuentas de servicio, consulta Cuentas de servicio.
Usa el comando
gsutil signurl
y pasa la ruta de acceso a la clave privada del paso anterior, además del nombre del bucket y del objeto.Por ejemplo, si usas una clave almacenada en la carpeta
Desktop
, el siguiente comando generará una URL firmada para que los usuarios vean el objetocat.jpeg
durante 10 minutos.gsutil signurl -d 10m Desktop/private-key.json gs://example-bucket/cat.jpeg
Si se realiza con éxito, la respuesta debería verse de la siguiente manera:
URL HTTP Method Expiration Signed URL gs://example-bucket/cat.jpeg GET 2018-10-26 15:19:52 https://storage.googleapis. com/example-bucket/cat.jpeg?x-goog-signature=2d2a6f5055eb004b8690b9479883292ae74 50cdc15f17d7f99bc49b916f9e7429106ed7e5858ae6b4ab0bbbdb1a8ccc364dad3a0da2caebd308 87a70c5b2569d089ceb8afbde3eed4dff5116f0db5483998c175980991fe899fbd2cd8cb813b0016 5e8d56e0a8aa7b3d7a12ee1baa8400611040f05b50a1a8eab5ba223fe5375747748de950ec7a4dc5 0f8382a6ffd49941c42498d7daa703d9a414d4475154d0e7edaa92d4f2507d92c1f7e811a7cab64d f68b5df4857589259d8d0bdb5dc752bdf07bd162d98ff2924f2e4a26fa6b3cede73ad5333c47d146 a21c2ab2d97115986a12c28ff37346d6c2ca83e5618ec8ad95632710b489b75c35697d781c38e& x-goog-algorithm=GOOG4-RSA-SHA256&x-goog-credential=example%40example-project. iam.gserviceaccount.com%2F20181026%2Fus%2Fstorage%2Fgoog4_request&x-goog-date= 20201026T211942Z&x-goog-expires=3600&x-goog-signedheaders=host
La URL firmada es la string que comienza con
https://storage.googleapis.com
, y es probable que se extienda varias líneas. Cualquier persona puede usar la URL a fin de acceder al recurso asociado (en este caso,cat.jpeg
) durante el marco de tiempo designado (en este caso, 10 minutos).
Muestras de código
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C#.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Go.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Node.js.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para PHP.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Ruby.
Crea una URL firmada para subir un objeto
Para crear una URL firmada que pueda subir un objeto a un bucket, sigue estos pasos:
gsutil
Genera una clave privada nueva o usa una clave privada existente para una cuenta de servicio. La clave puede estar en formato JSON o PKCS12.
Para obtener más información sobre las claves privadas y cuentas de servicio, consulta Cuentas de servicio.
Usa
gcloud auth activate-service-account
para autenticarte con la cuenta de servicio:gcloud auth activate-service-account --key-file KEY_FILE_LOCATION/KEY_FILE_NAME
Aquí:
KEY_FILE_LOCATION
es la ruta local al archivo que contiene el archivo con las credenciales de la cuenta de servicio. Por ejemplo,Desktop
.KEY_FILE_NAME
es el nombre del archivo que contiene tus credenciales de la cuenta de servicio. Por ejemplo,key.txt
.
Usa el comando
gsutil signurl
con la opción-u
para hacer referencia a las credenciales de la cuenta de servicio.Por ejemplo, el siguiente comando crea una URL firmada que permite a los usuarios subir un archivo de imagen:
gsutil signurl -m PUT -d 1h -c CONTENT_TYPE -u gs://BUCKET_NAME/OBJECT_NAME
Aquí:
CONTENT_TYPE
es el tipo de contenido del objeto. Por ejemplo,image/png
BUCKET_NAME
es el nombre del bucket en el que se subirá el objeto. Por ejemplo,example-bucket
.OBJECT_NAME
es el nombre que se asignará al objeto subido. Por ejemplo,cat.png
.
Si tiene éxito, se debería ver de la siguiente manera:
URL HTTP Method Expiration Signed URL gs://example-bucket/cat.png PUT 2021-01-09 00:28:11 https://storage.googleapis. com/example-bucket/cat.png?x-goog-signature=2d2a6f5055eb004b8690b9479883292ae74 50cdc15f17d7f99bc49b916f9e7429106ed7e5858ae6b4ab0bbbdb1a8ccc364dad3a0da2caebd308 87a70c5b2569d089ceb8afbde3eed4dff5086f0db5483998c175980991fe899fbd2cd8cb813b0016 5e8d56e0a8aa7b3d7215ee1baa8400611040f05b50a1a8eab5ba223fe1375747748de950ec7i6dc5 0f8382a6ffd4994ac42498d7daa703d9a414d4475154d0e7edaa92d4f2507d92c1f7e8efa7cab64d f68b5df48575b9259d8d0bdb5dc752bdf07bd162d98ff2924f2p4a26fa6b3cede73ad5333c47d146 a21c2ab2d97b15986a12c68ff3734696c2ca83e56b8ec8ad95632710b488b75c35697d781c38e& x-goog-algorithm=GOOG4-RSA-SHA256&x-goog-credential=example%40example-project. iam.gserviceaccount.com%2F20181026%2Fus%2Fstorage%2Fgoog4_request&x-goog-date= 20201026T211942Z&x-goog-expires=3600&x-goog-signedheaders=host
La URL firmada es la string que comienza con
https://storage.googleapis.com
, y es probable que se extienda varias líneas. Cualquier persona puede usar esta URL a fin de subir un recurso (en este caso,cat.png
) al bucket de Cloud Storage especificado para el período determinado (en este caso, 1 hora).
Muestras de código
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C#.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Go.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Node.js.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para PHP.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Ruby.
¿Qué sigue?
- Obtén más información sobre cómo firmar las URL con tu propio programa.
- Consulta las opciones disponibles para las URL firmadas.
- Obtén más información sobre las URL firmadas.
- Obtén más información sobre cómo subir un objeto con la API de XML.
- Obtén más información sobre cómo subir objetos.