O Cloud Storage oferece suporte a leituras de objetos por streaming, o que permite que um aplicativo ou processo consuma streams de bytes de objetos em tempo real diretamente pela conexão de rede sem salvar uma cópia dos dados em um disco local ou armazenamento permanente.
Se você quiser fazer o download de um objeto e salvá-lo no sistema de arquivos local, consulte Fazer o download de objetos como arquivos em vez disso.
Como usar a validação de checksum ao transmitir leituras
Não use uma leitura por streaming se você precisar de validação de checksum
antes do tratamento de dados. Como as leituras por streaming normalmente usam o cabeçalho Range HTTP, o Cloud Storage não retorna somas de verificação que se aplicam apenas a uma parte solicitada arbitrária dos dados do objeto. As somas de verificação do servidor validam o objeto completo, o que significa que dados corrompidos podem ser lidos e processados antes que o stream completo seja concluído e validado.
Funções exigidas
Para receber as permissões necessárias para fazer leituras por streaming, peça ao administrador para conceder a você o papel de Leitor de objetos do Storage (roles/storage.objectViewer) no bucket.
Esse papel contém a permissão necessária para transmitir leituras. Para conferir a permissão exata necessária, expanda a seção Permissões necessárias:
Permissões necessárias
storage.objects.get
Talvez você também possa receber essa permissão com outros papéis predefinidos ou personalizados.
Para instruções sobre como conceder papéis nos buckets, consulte Definir e gerenciar políticas do IAM em buckets.
Transmitir uma leitura de objeto
Os exemplos a seguir mostram como realizar uma leitura transmitida de um objeto do Cloud Storage para um processo:
Console
O Google Cloud console não oferece suporte a leituras por streaming. Use a Google Cloud CLI.
Linha de comando
Execute o comando
gcloud storage cpusando um traço para o URL de destino. Em seguida, direcione os dados para o processo:gcloud storage 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:
gcloud storage cp gs://my_app_bucket/data_measurements - | sort
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Rust
APIs REST
API JSON
Para realizar uma leitura por streaming, siga as instruções para fazer o download de um objeto com as seguintes considerações:
Antes de iniciar a leitura, recupere os metadados do objeto e salve o número de geração dele. Inclua esse número de geração em cada uma das solicitações para garantir que você não leia dados de duas gerações diferentes caso o original seja substituído.
Use o cabeçalho
Rangena solicitação para recuperar uma parte do objeto geral, que pode ser enviada ao processo local.Continue fazendo solicitações para partes sucessivas do objeto até que todo o objeto seja recuperado.
API XML
Para realizar uma leitura por streaming, siga as instruções para fazer o download de um objeto com as seguintes considerações:
Antes de iniciar a leitura, recupere os metadados do objeto e salve o número de geração dele. Inclua esse número de geração em cada uma das solicitações para garantir que você não leia dados de duas gerações diferentes caso o original seja substituído.
Use o cabeçalho
Rangena solicitação para recuperar uma parte do objeto geral, que pode ser enviada ao processo local.Continue fazendo solicitações para partes sucessivas do objeto até que todo o objeto seja recuperado.
A seguir
- Fazer streaming de um upload.
- Saiba mais sobre transcodificação de descompactação.
- Saiba mais sobre leituras e downloads de objetos.