¿Cómo obtener una URL de descarga de archivos en Google Cloud Storage?

¿Cómo obtener una URL de descarga de archivos en Google Cloud Storage?

He creado un servicio usando:

almacenamiento.Cliente(proyecto='nombre_proyecto', credenciales=credenciales)

https://googleapis.dev/python/storage/latest/client.html

Y puedo cargar, eliminar y enumerar los archivos en el depósito de Google Cloud de un usuario. He visto una opción para descargar el archivo a un servidor, pero ¿hay alguna opción para obtener un enlace de descarga?

Respuesta1

Puede obtener el enlace descargable reemplazando los valores de la siguiente cadena:

https://storage.googleapis.com/{bucket.name}/{blob.name}

Si necesita limitar permisos o tiempo para realizar la solicitud, puedegenerar una URL firmada

Una URL firmada es una URL que proporciona permiso y tiempo limitados para realizar una solicitud. Las URL firmadas contienen información de autenticación en su cadena de consulta, lo que permite a los usuarios sin credenciales realizar acciones específicas en un recurso. Cuando genera una URL firmada, especifica un usuario o cuenta de servicio que debe tener permiso suficiente para realizar la solicitud que realizará la URL firmada. Después de generar una URL firmada, cualquiera que la posea puede usarla para realizar acciones específicas, como leer un objeto, dentro de un período de tiempo específico.

Respuesta2

No puede utilizar un token de acceso para firmar una URL porque los tokens de acceso tienen un tiempo limitado (aproximadamente una hora). Una alternativa al uso del archivo de clave privada para firmar una URL es utilizar la funcionalidad SignBlob de IAM. Puede usarlo con “gsutil” el comando ”gsutil signurl -u --” como se menciona endocumentación. Tenga en cuenta que con este método, la URL firmada solo es válida durante 12 horas, en comparación con el máximo de 7 días como se menciona en eldocumentación

El servicio signBlob rota periódicamente la clave privada que utiliza. Las URL firmadas generadas se pueden utilizar durante al menos 12 horas, pero pueden dejar de funcionar antes del tiempo de vencimiento establecido si el tiempo de vencimiento es mayor a 12 horas. Teniendo esto en cuenta, las URL firmadas generadas a partir de signBlob se utilizan mejor para el acceso de corta duración a los recursos.

información relacionada