En Cloud Storage, se admiten transferencias de transmisión, que permiten la transmisión de datos desde y hacia tu cuenta de Cloud Storage sin necesidad de que los datos se guarden primero en un archivo.
Las cargas de transmisión son útiles cuando deseas subir datos cuyo tamaño final desconoces al comienzo de la carga, como cuando se generan los datos de carga de un proceso o cuando se comprime un objeto en el momento.
Las descargas de transmisión son útiles cuando deseas descargar datos de Cloud Storage en un proceso.
Cargas de transmisión
En los siguientes ejemplos, se muestra cómo realizar una carga de transmisión desde un proceso a un objeto de Cloud Storage:
gsutil
Canaliza los datos al comando
gsutil cp
y usa un guion para la URL de origen:PROCESS_NAME | gsutil cp - gs://BUCKET_NAME/OBJECT_NAME
Donde:
PROCESS_NAME
es el nombre del proceso desde el que recopilas datos. Por ejemplo,collect_measurements
.BUCKET_NAME
es el nombre del bucket que contiene el objeto. Por ejemplo,my_app_bucket
.OBJECT_NAME
es el nombre del objeto que se crea a partir de los datos. Por ejemplo,data_measurements
.
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#.
Para transmitir cargas de objetos con C#, consulta la documentación de referencia de SimpleUpload.
Comienza a usarlo
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Go.
Para transmitir cargas de objetos con Go, consulta la documentación de referencia de NewWriter
Ten en cuenta que Go usa las interfaces estándares io.Writer
y io.Reader
para las cargas y descargas, respectivamente, que permiten la transmisión.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Para transmitir cargas de objetos con Java, consulta la documentación de referencia del escritor.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Node.js.
Para transmitir cargas de objetos con Node.js, consulta la documentación de referencia de createWriteStream.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para PHP.
Para transmitir cargas de objetos con PHP, consulta la documentación de referencia de la carga.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
Para transmitir cargas de objetos con Python, consulta la documentación de referencia de ResumableUploads.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Ruby.
En este momento, no puedes realizar cargas de transmisión con la biblioteca cliente de Ruby.
API de REST
API de JSON
A fin de realizar una carga de transmisión, sigue las instrucciones para realizar una carga reanudable con las siguientes consideraciones:
Cuando subas los datos del archivo, usa una carga en varios fragmentos.
Dado que no conoces el tamaño total del archivo hasta llegar al fragmento final, usa un
*
para el tamaño total del archivo en el encabezadoContent-Range
de los fragmentos intermedios.Por ejemplo, si el primer fragmento que subes tiene un tamaño de 512 KiB, el encabezado
Content-Range
del fragmento esbytes 0-524287/*
. Si tu carga tiene 64,000 bytes restantes después del primer fragmento, debes enviar un fragmento final que contenga los bytes restantes y tenga un encabezadoContent-Range
con el valorbytes 524288-588287/588288
.
API de XML
A fin de realizar una carga de transmisión, sigue las instrucciones para realizar una carga reanudable con las siguientes consideraciones:
Cuando subas los datos del archivo, usa una carga en varios fragmentos.
Dado que no conoces el tamaño total del archivo hasta llegar al fragmento final, usa un
*
para el tamaño total del archivo en el encabezadoContent-Range
de los fragmentos intermedios.Por ejemplo, si el primer fragmento que subes tiene un tamaño de 512 KiB, el encabezado
Content-Range
del fragmento esbytes 0-524287/*
. Si tu carga tiene 64,000 bytes restantes después del primer fragmento, debes enviar un fragmento final que contenga los bytes restantes y tenga un encabezadoContent-Range
con el valorbytes 524288-588287/588288
.
Descargas de transmisión
En los siguientes ejemplos, se muestra cómo realizar una descarga desde un objeto de Cloud Storage a un proceso:
gsutil
Ejecuta el comando
gsutil cp
con un guion para la URL de destino y, a continuación, canaliza los datos al proceso:gsutil cp gs://BUCKET_NAME/OBJECT_NAME - | PROCESS_NAME
Donde:
BUCKET_NAME
es el nombre del bucket que contiene el objeto. Por ejemplo,my_app_bucket
.OBJECT_NAME
es el nombre del objeto que transmites al proceso. Por ejemplo,data_measurements
.PROCESS_NAME
es el nombre del proceso en el que se envían datos. Por ejemplo,analyze_data
.
También puedes transmitir datos desde un objeto de Cloud Storage a un comando estándar de Linux como sort:
gsutil cp gs://my_app_bucket/data_measurements - | sort
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++.
Para transmitir descargas de objetos con C++, consulta la documentación de referencia de ReadObject.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C#.
Para transmitir descargas de objetos con C#, consulta la documentación de referencia de SimpleDownload.
Comienza a usarlo
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Go.
Para transmitir descargas de objetos con Go, consulta la documentación de referencia de NewReader.
Ten en cuenta que Go usa las interfaces estándares io.Writer
y io.Reader
para las cargas y descargas, respectivamente, que permiten la transmisión.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Para transmitir descargas de objetos con Java, consulta la documentación de referencia del lector.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Node.js.
Para transmitir descargas de objetos con Node.js, consulta la documentación de referencia de createReadStream.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para PHP.
Para transmitir descargas de objetos con PHP, consulta la documentación de referencia de downloadAsStreams.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
Para transmitir descargas de objetos con Python, consulta la documentación de referencia de ChunnedDownload.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Ruby.
En este momento, no puedes realizar descargas de transmisión con la biblioteca cliente de Ruby.