O Cloud Storage é compatível com transferências por streaming, que permitem transmitir dados de e para sua conta do Cloud Storage sem que os dados precisem ser salvos em um arquivo.
Os uploads por streaming são úteis quando você quer fazer o upload de dados com tamanho final desconhecido no início do upload, como ao gerar os dados de upload de um processo ou ao compactar um objeto rapidamente.
Os downloads por streaming são úteis quando você quer fazer o download de dados do Cloud Storage para um processo.
Como fazer uploads por streaming
Os exemplos a seguir mostram como executar um upload por streaming de um processo para um objeto do Cloud Storage:
gsutil
Envie os dados ao comando
gsutil cp
e use um traço para indicar o URL de origem:PROCESS_NAME | gsutil cp - gs://BUCKET_NAME/OBJECT_NAME
Em que:
PROCESS_NAME
é o nome do processo do qual você está coletando dados. Por exemplo,collect_measurements
.BUCKET_NAME
é o nome do bucket que contém o objeto. Por exemplo,my_app_bucket
.OBJECT_NAME
é o nome do objeto criado a partir dos dados. Por exemplo,data_measurements
.
Amostras de código
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage para C#.
Para fazer streaming de uploads de objetos usando C#, consulte a documentação de referência de SimpleUpload.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.
Para fazer streaming de uploads de objetos usando o Go, consulte a documentação de referência de NewWriter.
Observe que o Go usa as interfaces io.Writer
e io.Reader
padrão para uploads e downloads, respectivamente, e ambos permitem o streaming.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.
Para fazer streaming de uploads de objetos usando Java, consulte a documentação de referência de writer.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.
Para fazer streaming de uploads de objetos usando o Node.js, consulte a documentação de referência de createWriteStream.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage para PHP.
Para fazer streaming de uploads de objetos usando o PHP, consulte a documentação de referência de upload.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.
Para fazer streaming de objetos de objeto usando Python, consulte a documentação de referência do ResumableUploads.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.
No momento, não é possível fazer uploads por streaming com a biblioteca de cliente do Ruby.
APIs REST
API JSON
Para executar um upload por streaming, siga as instruções sobre como executar um upload retomável com as seguintes considerações:
Ao fazer upload dos próprios dados de arquivo, use um upload de vários blocos.
Como você não sabe o tamanho total do arquivo até chegar ao bloco final, use um
*
para o tamanho total do arquivo no cabeçalhoContent-Range
de blocos intermediários.Por exemplo, se o primeiro bloco do upload tiver um tamanho de 512 KiB, o cabeçalho
Content-Range
do bloco serábytes 0-524287/*
. Se o upload tiver 64.000 bytes restantes após o primeiro bloco, envie um bloco final que contenha os bytes restantes e tenha um cabeçalhoContent-Range
com o valorbytes 524288-588287/588288
.
API XML
Para executar um upload por streaming, siga as instruções sobre como executar um upload retomável com as seguintes considerações:
Ao fazer upload dos próprios dados de arquivo, use um upload de vários blocos.
Como você não sabe o tamanho total do arquivo até chegar ao bloco final, use um
*
para o tamanho total do arquivo no cabeçalhoContent-Range
de blocos intermediários.Por exemplo, se o primeiro bloco do upload tiver um tamanho de 512 KiB, o cabeçalho
Content-Range
do bloco serábytes 0-524287/*
. Se o upload tiver 64.000 bytes restantes após o primeiro bloco, envie um bloco final que contenha os bytes restantes e tenha um cabeçalhoContent-Range
com o valorbytes 524288-588287/588288
.
Como fazer downloads por streaming
Os exemplos a seguir mostram como realizar o download de um objeto do Cloud Storage para um processo:
gsutil
Execute o comando
gsutil cp
usando um traço para o URL de destino. Em seguida, direcione os dados para o processo:gsutil cp gs://BUCKET_NAME/OBJECT_NAME - | PROCESS_NAME
Em que:
BUCKET_NAME
é o nome do bucket que contém o objeto. Por exemplo,my_app_bucket
.OBJECT_NAME
é o nome do objeto que você está transmitindo para o processo. Por exemplo,data_measurements
.PROCESS_NAME
é o nome do processo no qual você está inserindo dados. Por exemplo,analyze_data
.
Também é possível realizar a transferência por streaming dos dados de um objeto do Cloud Storage para um comando padrão do Linux, como sort:
gsutil cp gs://my_app_bucket/data_measurements - | sort
Amostras de código
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.
Para fazer o streaming de downloads de objetos usando C++, consulte a documentação de referência de ReadObject.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage para C#.
Para fazer o streaming de downloads de objetos usando C#, consulte a documentação de referência de SimpleDownload.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.
Para fazer o streaming de downloads de objetos usando Go, consulte a documentação de referência de NewReader.
Observe que o Go usa as interfaces io.Writer
e io.Reader
padrão para uploads e downloads, respectivamente, e ambos permitem o streaming.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.
Para fazer o streaming de downloads de objetos usando Java, consulte a documentação de referência de reader.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.
Para fazer o streaming de downloads de objetos usando o Node.js, consulte a documentação de referência de createReadStream.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage para PHP.
Para fazer o streaming de downloads de objetos usando o PHP, consulte a documentação de referência de downloadAsStreams.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.
Para fazer streaming de downloads de objetos usando o Python, consulte a documentação de referência do ChunnedDownload.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.
No momento, não é possível fazer downloads por streaming com a biblioteca de cliente do Ruby.