Uploads e downloads

Nesta página, abordaremos conceitos relacionados ao upload e download de objetos. É possível fazer upload e armazenar qualquer tipo MIME de dados de até 5 TiB.

Uploads

Envie solicitações de upload para o Cloud Storage das seguintes maneiras:

  • Upload de solicitação única. Um método de upload em que um objeto é enviado como uma única solicitação. Use se o arquivo for pequeno o suficiente para fazer upload na íntegra se a conexão falhar. Consulte Fazer upload de objeto do arquivo ou Fazer upload de objeto da memória para conferir guias sobre uploads de solicitação única.

  • Upload retomável. Um método de upload que oferece uma transferência mais confiável, especialmente importante para arquivos grandes. Os uploads retomáveis são uma boa opção para a maioria dos aplicativos, já que também funcionam para arquivos pequenos ao custo de uma solicitação HTTP adicional por upload. Também é possível usar uploads retomáveis para executar transferências por streaming, o que permite fazer upload de um objeto de tamanho desconhecido.

  • Upload de várias partes da API XML. Um método de upload compatível com uploads de várias partes do Amazon S3. Os arquivos são enviados em partes e agrupados em um único objeto com a solicitação final. Os uploads de várias partes da API XML permitem que você faça upload das partes em paralelo, possivelmente reduzindo o tempo para concluir o upload geral.

Com esses tipos básicos de upload, são possíveis estratégias de upload mais avançadas:

  • Upload composto paralelo. Uma estratégia de upload em que você divide um arquivo em partes e faz upload dessas partes em paralelo. Ao contrário dos uploads de várias partes da API XML, os uploads compostos paralelos usam a operação de composição, e o objeto final é armazenado como um objeto composto.

  • Upload por streaming. Um método de upload que permite fazer upload dos dados sem que eles sejam salvos primeiro em um arquivo, o que é útil quando você não sabe o tamanho final no início do upload.

  • Upload de codificação de transferência em blocos. Um upload de solicitação única que inclui o cabeçalho Transfer-Encoding: chunked, permitindo que o upload seja enviado em vários blocos de dados sequenciais.

Considerações sobre tamanho do upload

Ao escolher usar um upload de solicitação única em vez de um upload retomável ou de upload de várias partes da API XML, considere o tempo que você perderá se ocorrer uma falha na rede e você precisar reiniciar o upload desde o início. Para conexões mais rápidas, o tamanho do corte normalmente é maior.

Por exemplo, digamos que você esteja disposto a tolerar perder 30 segundos:

  • Se você fizer upload de um sistema local com uma velocidade de upload média de 8 Mbps, poderá usar uploads de solicitação única para arquivos de até 30 MB.

  • Se você fizer o upload de um serviço na região que tenha uma média de 500 Mbps de velocidade de upload, o tamanho do corte dos arquivos será de quase 2 GB.

Downloads

Todos os downloads do Cloud Storage têm o mesmo comportamento básico: uma solicitação GET HTTP ou HTTPS que pode incluir um cabeçalho Range opcional, que define uma parte específica do objeto para download.

Com esse comportamento básico de download, é possível retomar downloads interrompidos, além de usar estratégias de download mais avançadas, como downloads de objetos divididos e downloads de streaming.

Suporte por ferramenta

Console

É possível realizar os seguintes tipos de upload e download ao usar o Console do Google Cloud:

Linha de comando

É possível executar os seguintes tipos de upload e download ao usar a Google Cloud CLI:

Bibliotecas de cliente

C++

Você pode realizar os seguintes tipos de uploads e downloads ao usar a biblioteca de cliente C++:

C#

Você pode realizar os seguintes tipos de uploads e downloads ao usar a biblioteca de cliente C#:

Go

É possível realizar os seguintes tipos de uploads e downloads ao usar a biblioteca de cliente Go:

Java

É possível realizar os seguintes tipos de uploads e downloads ao usar a biblioteca de cliente Java:

Node.js

É possível realizar os seguintes tipos de uploads e downloads ao usar a biblioteca de cliente Node.js:

PHP

Você pode realizar os seguintes tipos de uploads e downloads ao usar a biblioteca de cliente PHP:

Python

É possível realizar os seguintes tipos de uploads e downloads ao usar a biblioteca de cliente do Python:

Ruby

Você pode realizar os seguintes tipos de upload e download ao usar a biblioteca de cliente do Ruby:

Terraform

É possível fazer uploads de solicitação única ao usar o Terraform. Os uploads retomáveis ocorrem automaticamente quando o arquivo que está sendo enviado é maior que 16 MiB.

APIs REST

Caso você use APIs REST para fazer upload e download, consulte Endpoints de solicitação para ver uma discussão completa sobre os endpoints de solicitação que podem ser usados.

A seguir