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 e 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 obter informações sobre como conceder funções em contentores, consulte o artigo Defina e faça a gestão de políticas de IAM em 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.