O Cloud Storage oferece suporte ao streaming de dados de um bucket para um processo sem exigir que os dados primeiro sejam salvos em um arquivo.
Como usar a validação da soma de verificação durante o streaming
Não use um download por streaming se você precisar de validação da soma de verificação antes
de os dados se tornarem acessíveis. Isso ocorre porque os downloads por streaming usam o
cabeçalho Range
e o Cloud Storage não realiza a validação
da soma de verificação nessas solicitações.
Recomenda-se que você sempre use a validação da soma de verificação e faça isso manualmente após a conclusão do upload por streaming. No entanto, validar após a conclusão do download significa que todos os dados corrompidos podem ser acessados durante o tempo necessário para confirmar e remover os dados corrompidos.
Pré-requisitos
Os pré-requisitos podem variar com base na ferramenta usada:
Console
Para concluir este guia usando o Console do Google Cloud, é preciso ter as permissões de IAM adequadas. Se o bucket que você quer acessar para streaming existir em um projeto que você não criou, talvez seja necessário que o proprietário do projeto conceda um papel que contenha as permissões necessárias.
Para uma lista de permissões necessárias para ações específicas, consulte Permissões do IAM para o Console do Google Cloud.
Para ver a lista de papéis relevantes, consulte Papéis do Cloud Storage. Como alternativa, é possível criar um papel personalizado que tenha permissões mais limitadas.
Linha de comando
Para concluir este guia usando um utilitário de linha de comando, você precisa ter as permissões de IAM adequadas. Se o bucket que você quer acessar para streaming existir em um projeto que você não criou, talvez seja necessário que o proprietário do projeto conceda um papel que contenha as permissões necessárias.
Para uma lista de permissões necessárias para ações específicas, consulte
Permissões do IAM
para comandos gcloud storage
.
Para ver a lista de papéis relevantes, consulte Papéis do Cloud Storage. Como alternativa, é possível criar um papel personalizado que tenha permissões mais limitadas.
Bibliotecas de cliente
Para concluir este guia usando as bibliotecas de cliente do Cloud Storage, é preciso ter as permissões de IAM adequadas. Se o bucket que você quer acessar para streaming existir em um projeto que você não criou, talvez seja necessário que o proprietário do projeto conceda um papel que contenha as permissões necessárias.
A menos que indicado de outra forma, as solicitações da biblioteca de cliente são feitas por meio da API JSON e exigem permissões conforme listado em Permissões do IAM para métodos JSON. Para conferir quais métodos da API JSON são invocados ao fazer solicitações usando uma biblioteca de cliente, registre as solicitações brutas.
Para conferir a lista de papéis do IAM relevantes, consulte Papéis do Cloud Storage. Como alternativa, é possível criar um papel personalizado que tenha permissões mais limitadas.
APIs REST
API JSON
Para concluir este guia usando a API JSON, é preciso ter as permissões do IAM adequadas. Se o bucket que você quer acessar para streaming existir em um projeto que você não criou, talvez seja necessário que o proprietário do projeto conceda um papel que contenha as permissões necessárias.
Para uma lista de permissões necessárias para ações específicas, consulte Permissões do IAM para métodos JSON.
Para ver a lista de papéis relevantes, consulte Papéis do Cloud Storage. Como alternativa, é possível criar um papel personalizado que tenha permissões mais limitadas.
Fazer streaming de um download
Os exemplos a seguir mostram como realizar o download de um objeto do Cloud Storage para um processo:
Console
O console do Google Cloud não é compatível com downloads por streaming. Em vez disso, use a CLI gcloud.
Linha de comando
Execute o comando
gcloud storage cp
usando 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 autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
APIs REST
API JSON
Para executar um download por streaming, siga as instruções para fazer o download de um objeto com as seguintes considerações:
Antes de começar o download, recupere os metadados do objeto e salve o número de geração. Inclua esse número de geração em todas as suas solicitações para garantir que você não faça o download de dados de duas gerações diferentes no caso de a original ser substituída.
Use o cabeçalho
Range
na solicitação para recuperar uma parte do objeto geral, que pode ser enviada ao processo local desejado.Continue fazendo solicitações para partes sucessivas do objeto até que todo o objeto seja recuperado.
API XML
Para executar um download por streaming, siga as instruções para fazer o download de um objeto com as seguintes considerações:
Antes de começar o download, recupere os metadados do objeto e salve o número de geração. Inclua esse número de geração em todas as suas solicitações para garantir que você não faça o download de dados de duas gerações diferentes no caso de a original ser substituída.
Use o cabeçalho
Range
na solicitação para recuperar uma parte do objeto geral, que pode ser enviada ao processo local desejado.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 a transcodificação descompressiva.
- Saiba mais sobre Uploads e downloads.