Cloud Storage admite lecturas de objetos de transmisión, lo que permite que una aplicación o un proceso consuman flujos de bytes de objetos en tiempo real directamente a través de la conexión de red sin guardar una copia de los datos en un disco local o almacenamiento persistente.
Si deseas descargar un objeto y guardarlo en tu sistema de archivos local, consulta Descarga objetos como archivos.
Usa la validación de la suma de verificación cuando transmitas lecturas
No debes usar una lectura de transmisión si necesitas una validación de la suma de verificación antes del procesamiento de datos. Dado que las lecturas de transmisión suelen usar el encabezado HTTP Range, Cloud Storage no devuelve sumas de verificación que se apliquen únicamente a una parte solicitada arbitraria de los datos del objeto. Las sumas de verificación del servidor validan el objeto completo, lo que significa que los datos dañados se pueden leer y procesar antes de que finalice y se valide el flujo completo.
Roles obligatorios
Para obtener los permisos necesarios para las lecturas de transmisión, pídele a tu administrador que te otorgue el rol de visualizador de objetos de almacenamiento (roles/storage.objectViewer) en el bucket.
Este rol contiene el permiso necesario para transmitir lecturas. Para ver el permiso exacto que es necesario, expande la sección Permisos requeridos:
Permisos necesarios
storage.objects.get
También puedes obtener este permiso con otros roles predefinidos o roles personalizados.
Para obtener instrucciones para otorgar roles a los buckets, consulta Configura y administra políticas de IAM en buckets.
Transmite una lectura de objeto
En los siguientes ejemplos, se muestra cómo realizar una lectura transmitida desde un objeto de Cloud Storage a un proceso:
Console
La consola de Google Cloud no admite lecturas de transmisión. En su lugar, usa Google Cloud CLI.
Línea de comandos
Ejecuta el comando
gcloud storage cpcon un guion para la URL de destino y, a continuación, canaliza los datos al proceso:gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME - | PROCESS_NAME
Aquí:
BUCKET_NAMEes el nombre del bucket que contiene el objeto. Por ejemplo,my_app_bucket.OBJECT_NAMEes el nombre del objeto que transmites al proceso. Por ejemplo,data_measurementsPROCESS_NAMEes el nombre del proceso al que envías datos. Por ejemplo,analyze_data
También puedes transmitir datos desde un objeto de Cloud Storage hasta un comando estándar de Linux como sort:
gcloud storage cp gs://my_app_bucket/data_measurements - | sort
Bibliotecas cliente
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C#.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage PHP.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Ruby.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Rust
API de REST
API de JSON
Para realizar una lectura de transmisión, sigue las instrucciones para descargar un objeto con las siguientes consideraciones:
Antes de comenzar la lectura, recupera los metadatos del objeto y guarda el número de generación del objeto. Incluye este número de generación en cada una de tus solicitudes para asegurarte de no leer datos de dos generaciones diferentes en caso de que se reemplacen los originales.
Usa el encabezado
Rangeen tu solicitud para recuperar una parte del objeto general, que puedes enviar a un proceso local.Continúa realizando solicitudes para partes sucesivas del objeto, hasta que se haya recuperado todo el objeto.
API de XML
Para realizar una lectura de transmisión, sigue las instrucciones para descargar un objeto con las siguientes consideraciones:
Antes de comenzar la lectura, recupera los metadatos del objeto y guarda el número de generación del objeto. Incluye este número de generación en cada una de tus solicitudes para asegurarte de no leer datos de dos generaciones diferentes en caso de que se reemplacen los originales.
Usa el encabezado
Rangeen tu solicitud para recuperar una parte del objeto general, que puedes enviar a un proceso local.Continúa realizando solicitudes para partes sucesivas del objeto, hasta que se haya recuperado todo el objeto.
¿Qué sigue?
- Realiza una carga de transmisión
- Obtén más información sobre la transcodificación descompresiva.
- Obtén más información sobre las lecturas y descargas de objetos.