O Cloud Storage suporta o streaming de dados para um contentor sem exigir que os dados sejam primeiro guardados num ficheiro. Isto é útil quando quer carregar dados, mas não sabe o tamanho final no início do carregamento, como quando gera os dados de carregamento a partir de um processo ou quando comprime um objeto em tempo real.
Usar a validação de checksum durante o streaming
Uma vez que só é possível fornecer uma soma de verificação no pedido inicial de um carregamento, muitas vezes, não é viável usar a validação de somas de verificação do Cloud Storage durante o streaming. Recomendamos que use sempre a validação de checksums. Pode fazê-lo manualmente após a conclusão de um carregamento de streaming. No entanto, a validação após a conclusão da transferência significa que quaisquer dados danificados estão acessíveis durante o tempo necessário para confirmar a danificação e removê-los.
Se precisar da validação da soma de verificação antes da conclusão do carregamento e da disponibilização dos dados, não deve usar um carregamento de streaming. Deve usar uma opção de carregamento diferente que execute a validação da soma de verificação antes de finalizar o objeto.
Funções necessárias
Para receber as autorizações necessárias para fazer streaming de carregamentos, peça ao administrador que lhe conceda uma das seguintes funções:
Para carregamentos que incluam um bloqueio de retenção de objetos, peça ao seu administrador para lhe conceder a função de IAM de administrador de objetos de armazenamento (
roles/storage.objectAdmin
) para o contentor.Para todos os outros casos, peça ao administrador que lhe conceda a função de IAM de utilizador do objeto de armazenamento (
roles/storage.objectUser
) para o contentor.
Estas funções predefinidas contêm as autorizações necessárias para fazer stream de carregamentos para o Cloud Storage. Para ver as autorizações exatas necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
storage.objects.create
storage.objects.delete
- Esta autorização só é necessária para carregamentos que substituam um objeto existente.
storage.objects.list
- Esta autorização só é necessária para usar a CLI Google Cloud para executar as instruções nesta página.
storage.objects.setRetention
- Esta autorização só é necessária para carregamentos que incluam um bloqueio de retenção de objetos.
Também pode obter estas autorizações com outras funções predefinidas ou funções personalizadas.
Para ver informações sobre a concessão de funções em contentores, consulte o artigo Use o IAM com contentores.
Faça stream de um carregamento
Os exemplos seguintes mostram como fazer um carregamento de streaming de um processo para um objeto do Cloud Storage:
Consola
A Google Cloud consola não suporta carregamentos de streaming. Em alternativa, use a CLI gcloud.
Linha de comandos
Encaminhe os dados para o comando
gcloud storage cp
e use um traço para o URL de origem:PROCESS_NAME | gcloud storage cp - gs://BUCKET_NAME/OBJECT_NAME
Onde:
PROCESS_NAME
é o nome do processo a partir do qual está a recolher dados. Por exemplo,collect_measurements
.BUCKET_NAME
é o nome do contentor que contém o objeto. Por exemplo,my_app_bucket
.OBJECT_NAME
é o nome do objeto que é criado a partir dos dados. Por exemplo,data_measurements
.
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Para fazer um carregamento de streaming, use um dos seguintes métodos:
Um carregamento retomável, com os seguintes ajustes:
Quando carregar os dados do ficheiro propriamente dito, use um carregamento de vários blocos.
Uma vez que não sabe o tamanho total do ficheiro até chegar ao último fragmento, use um
*
para o tamanho total do ficheiro no cabeçalhoContent-Range
dos fragmentos intermédios.Por exemplo, se o primeiro bloco que carregar tiver um tamanho de 512 KiB, o cabeçalho
Content-Range
para o bloco ébytes 0-524287/*
. Se o carregamento tiver 64 000 bytes restantes após o primeiro fragmento, envia um fragmento final que contém os bytes restantes e tem um cabeçalhoContent-Range
com o valorbytes 524288-588287/588288
.
Um carregamento de pedido único, com os seguintes ajustes:
Inclua um cabeçalho
Transfer-Encoding: chunked
e exclua o cabeçalhoContent-Length
.Construa o pedido de acordo com a especificação, enviando os dados do objeto em partes à medida que ficam disponíveis.
API XML
Para fazer um carregamento de streaming, use um dos seguintes métodos:
Um carregamento retomável, com os seguintes ajustes:
Quando carregar os dados do ficheiro propriamente dito, use um carregamento de vários blocos.
Uma vez que não sabe o tamanho total do ficheiro até chegar ao último fragmento, use um
*
para o tamanho total do ficheiro no cabeçalhoContent-Range
dos fragmentos intermédios.Por exemplo, se o primeiro bloco que carregar tiver um tamanho de 512 KiB, o cabeçalho
Content-Range
para o bloco ébytes 0-524287/*
. Se o carregamento tiver 64 000 bytes restantes após o primeiro fragmento, envia um fragmento final que contém os bytes restantes e tem um cabeçalhoContent-Range
com o valorbytes 524288-588287/588288
.
Um carregamento de pedido único, com os seguintes ajustes:
Inclua um cabeçalho
Transfer-Encoding: chunked
e exclua o cabeçalhoContent-Length
.Construa o pedido de acordo com a especificação, enviando os dados do objeto em partes à medida que ficam disponíveis.
Tenha em atenção que não pode fazer um carregamento de streaming através deste método se o pedido usar uma assinatura no respetivo
Authorization
cabeçalho.
O que se segue?
- Fazer stream de uma transferência.
- Saiba mais acerca da transcodificação descompressiva.
- Saiba mais sobre carregamentos e transferências.