Upload de objeto

Para fazer upload de um objeto com a API XML, faça uma solicitação PUT com escopo em um nome de bucket e no nome do objeto e coloque os dados do objeto no corpo da solicitação. O objeto enviado substitui qualquer objeto existente com o mesmo nome. Para obter dicas sobre como fazer o upload para o Cloud Storage, consulte Práticas recomendadas. Para ver um guia rápido de uploads simples usando ferramentas como a API XML, consulte Como fazer upload de objetos.

A solicitação PUT Object usa diversos cabeçalhos HTTP padrão. Content-Length especifica o tamanho do objeto em bytes e é obrigatório, a menos que você esteja usando a codificação de transferência em partes. Os cabeçalhos opcionais incluem Content-Type, Content-MD5 e aqueles listados abaixo. O Cloud Storage armazena esses cabeçalhos como parte dos metadados do objeto, exceto Content-MD5, que o Cloud Storage usa para verificar a integridade dos dados. Para informações sobre como alterar valores de metadados de objetos, consulte Como editar metadados de objetos.

Você também pode usar uma solicitação PUT Object para alterar oclasse de armazenamento de um objeto existente, porque você deve regravar o objeto existente para fazer isso. A solicitação deve conter ax-goog-storage-class cabeçalho da solicitação , bem como o objeto no corpo da solicitação.

.

Parâmetros de string de consulta

Normalmente, essa solicitação não inclui parâmetros de string de consulta.

Consulte parâmetros de string de consulta de URL assinado para informações sobre os parâmetros incluídos ao criar e usar URLs assinados.

Cabeçalhos de solicitação

Além dos cabeçalhos de solicitação comuns, os itens a seguir podem ser usados.

Header Descrição Obrigatório
Cache-Control As condições em que um objeto acessível ao público precisa ser armazenado em cache. Cache-Control também é usado para determinar se um objeto pode ser transformado. Não
Content-Disposition Um cabeçalho que especifica informações de apresentação sobre como os dados do objeto devem ser transmitidos. Não
Content-Encoding O algoritmo de compactação usado para compactar o objeto que você está enviando. Não
Content-Language É o código de idioma ISO 639-1 do conteúdo. Não
x-goog-acl A ACL predefinida que você quer aplicar ao objeto. Não
x-goog-custom-time Data e hora especificadas pelo usuário. Não
x-goog-encryption-kms-key-name A chave de criptografia gerenciada pelo cliente a ser usada para criptografar o objeto. Não
x-goog-meta- Um cabeçalho de extensão que pode ser usado para armazenar metadados personalizados. Não
x-goog-storage-class Uma classe de armazenamento válida. Não

Para fornecer uma chave de criptografia fornecida pelo cliente junto com o upload do objeto, use os cabeçalhos listados na página "Chave de criptografia fornecida pelo cliente" na solicitação.

Elementos do corpo da solicitação

O corpo da solicitação contém os dados.

Sintaxe da solicitação

A sintaxe a seguir se aplica às solicitações de objetos PUT que não usam parâmetros de string de consulta e exclui o cabeçalho de solicitação x-goog-copy-source.

PUT /OBJECT_NAME HTTP/1.1
Host: BUCKET_NAME.storage.googleapis.com
Date: DATE
Content-Length: REQUEST_BODY_LENGTH
Content-Type: MIME_TYPE
Content-MD5: MD5_DIGEST
Authorization: AUTHENTICATION_STRING
x-goog-storage-class: STORAGE_CLASS

Cabeçalhos de resposta

A solicitação pode retornar diversos cabeçalhos de resposta, dependendo dos cabeçalhos de solicitação usados.

Elementos do corpo da resposta

A resposta não inclui um documento XML no corpo da resposta.

Exemplo

A amostra a seguir faz upload de um objeto chamado paris.jpg em um bucket chamado travel-maps.

Solicitação

PUT /paris.jpg HTTP/1.1
Host: travel-maps.storage.googleapis.com
Date: Sat, 20 Feb 2010 16:31:08 GMT
Content-Type: image/jpg
Content-MD5: iB94gawbwUSiZy5FuruIOQ==
Content-Length: 554
Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg

Resposta

HTTP/1.1 200 OK
ETag: "881f7881ac1bc144a2672e45babb8839"
Date: Sat, 20 Feb 2010 16:31:09 GMT
Content-Length: 0
Content-Type: text/html

Códigos de erro comuns

Se você tentar fazer upload de um objeto para um bucket que não existe, receberá um código de status 404 Not Found e o corpo da resposta de erro terá NoSuchBucket no Code.

Se o resumo fornecido MD5 for malformado, você receberá um código de status 400 Bad Request e o corpo da resposta de erro terá InvalidDigest no elemento Code.

Se o resumo não corresponder ao resumo que computamos do corpo, você receberá um código de status 400 Bad Request e o corpo da resposta de erro terá BadDigest no Code.