Faz upload de objetos usando formulários HTML. O objeto enviado substitui qualquer objeto existente com o mesmo nome. Para obter dicas sobre como fazer o upload para o Cloud Storage, consulte as práticas recomendadas.
Para informações sobre solicitações de objeto POST
usando o processo de assinatura legada, consulte Objeto POST com o processo de assinatura V2.
Parâmetros de string de consulta
Essa solicitação não inclui parâmetros de string de consulta.
Campos do formulário
Campo | Descrição | Obrigatório |
---|---|---|
acl |
A ACL predefinida que você quer aplicar ao objeto que está sendo enviado. Se você não especificar esse campo, a ACL default do intervalo será aplicada. |
Não |
bucket |
O nome do bloco no qual você deseja fazer upload. Se você incluir esse campo, ele precisará corresponder ao nome do bucket especificado no atributo action . |
Não |
Cache-Control |
O controle de cache para o objeto. Só é possível definir o controle de cache para um objeto acessível a todos os usuários. Por exemplo, a ACL de um objeto precisa ser public-read ou public-read-write para ser capaz de definir o controle de cache. |
Não |
Content-Disposition |
Especifica como os dados do objeto devem ser transmitidos. Por exemplo, um valor Content-Disposition de inline significa que o objeto precisa ser exibido imediatamente. |
Não |
Content-Encoding |
O algoritmo de compactação do objeto, como gzip . |
Não |
Content-Length |
O tamanho do arquivo enviado, em bytes. | Não |
Content-Type |
O tipo MIME do arquivo que você está enviando por meio do formulário. Se você não especificar um tipo de conteúdo, o sistema do Cloud Storage usará como padrão application/octet-stream quando veicular o conteúdo. |
Não |
Expires |
Um carimbo de data/hora ISO8601 que especifica a data e a hora antes de um objeto ser considerado obsoleto pelo navegador. | Não |
file |
O arquivo que você está enviando. Precisa ser o último campo do formulário. É possível fazer o upload de apenas um objeto por solicitação. | Sim |
key |
O nome do objeto que você está enviando. Também é possível usar a variável ${filename} se um usuário fornece um nome de arquivo. | Sim |
policy |
A política de segurança que descreve o que pode e não pode ser enviado no formulário. O documento da política deve ser codificado em Base64. Consulte os documentos de política para mais informações. *Se você não fornecer uma política de segurança, as solicitações serão consideradas anônimas e funcionarão apenas com buckets que receberam as permissões |
Não* |
success_action_redirect |
Um URL ao qual os usuários são redirecionados quando um upload é bem-sucedido. Se você não fornecer um URL, o Cloud Storage responderá com o código de status especificado em success_action_status . |
Não |
success_action_status |
o código de status com que você quer que o Cloud Storage responda quando um upload for bem-sucedido. O padrão é 204, mas você pode alterar para 200 ou 201. Se você escolher 200 ou 204, o Cloud Storage retornará um documento vazio com esses códigos de status. Se você escolher 201, o Cloud Storage retornará um documento XML com os elementos descritos nos elementos do corpo da resposta. Observação: o Adobe Flash Player pode não processar respostas com um corpo de documento vazio. Use o código de status 201 se esse for o caso. | Não |
x-goog-algorithm |
O algoritmo de assinatura usado para criar a assinatura associada ao documento da política. Os valores possíveis são GOOG4-HMAC-SHA256 e GOOG4-RSA-SHA256 . |
Somente se você especificar um policy |
x-goog-credential |
As credenciais usadas para criar a assinatura associada ao documento da política. x-goog-credential tem a forma
AccessKeyId/CredentialScope , em que:
|
Somente se você especificar um policy |
x-goog-custom-time |
Uma data e hora especificadas pelo usuário no formato RFC 3339 (em inglês) YYYY-MM-DD'T'HH:MM:SS.SS'Z' . |
Não |
x-goog-date |
A data atual, no formato básico ISO 8601 YYYYMMDD'T'HHMMSS'Z' . |
Somente se você especificar um policy |
x-goog-signature |
A assinatura associada ao documento da política. | Somente se você especificar um policy |
x-goog-meta-* |
Um campo para metadados personalizados. É possível usar isso para especificar outros metadados que não sejam fornecidos pelos outros campos do formulário. Por exemplo, x-goog-meta-reviewer: jane ou x-goog-meta-project-manager: john são metadados personalizados. |
Não |
Elementos do corpo da resposta
Os seguintes elementos do corpo da resposta serão retornados em um documento XML somente se você definir success_action_status
como 201.
Element | Descrição |
---|---|
Bucket |
Bloco no qual o objeto foi armazenado. |
ETag |
Tag da entidade HTTP 1.1 do objeto. |
Key |
O nome do objeto. |
Location |
O URI do objeto. |
Uso e exemplos
O formulário precisa ser codificado em UTF-8. É possível especificar a codificação de formulário na tag head
HTML do formulário ou usando o cabeçalho de solicitação Content-Type
.
Sua tag form
precisa especificar estes três itens:
Uma ação.
O atributo
action
especifica um endpoint de solicitação da API XML. Os endpoints válidos incluemhttps://BUCKET_NAME.storage.googleapis.com
,https://storage.googleapis.com/BUCKET_NAME
e redirecionamentosCNAME
.Um método.
O atributo
method
especifica o método que você está usando para enviar o formulário. Precisa serpost
.Um tipo de hiperlink anexo.
O atributo
enctype
especifica o tipo de incorporação que você está usando e sempre precisa sermultipart/form-data
.
Veja a seguir um exemplo de formulário HTML usando um documento de política:
HTML
<form action="https://storage.googleapis.com/travel-maps" method="post" enctype="multipart/form-data"> <input type="text" name="key" value="test-object"> <input type="hidden" name="Content-Type" value="image/jpeg"> <input type="hidden" name="success_action_redirect" value="https://www.example.com/success_notification.html"> <input type="hidden" name="policy" value="eyJjb25kaXRpb25zIjpbeyJidWNrZXQiOiJ0cmF2ZWwtbWFwcyJ9LHsiY29udGVudC10eXBlIjoiaW1hZ2UvanBlZyJ9LHsic3VjY2Vzc19hY3Rpb25fcmVkaXJlY3QiOiJodHRwOi8vd3d3LmV4YW1wbGUuY29tL3N1Y2Nlc3Nfbm90aWZpY2F0aW9uLmh0bWwifSx7ImtleSI6InRlc3Qtb2JqZWN0In0seyJ4LWdvb2ctZGF0ZSI6IjIwMjAwMTIzVDA0MzUzMFoifSx7IngtZ29vZy1jcmVkZW50aWFsIjoiZXhhbXBsZV9hY2NvdW50QGV4YW1wbGVfcHJvamVjdC5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbS8yMDE5MTEwMi9hdXRvL3N0b3JhZ2UvZ29vZzRfcmVxdWVzdCJ9LHsieC1nb29nLWFsZ29yaXRobSI6IkdPT0c0LVJTQS1TSEEyNTYifV0sImV4cGlyYXRpb24iOiIyMDIwLTAxLTIzVDA0OjM1OjQwWiJ9"> <input type="hidden" name="x-goog-algorithm" value="GOOG4-RSA-SHA256"> <input type="hidden" name="x-goog-credential" value="example_account@example_project.iam.gserviceaccount.com/20191102/auto/storage/goog4_request"> <input type="hidden" name="x-goog-date" value="20191102T043530Z"> <input type="hidden" name="x-goog-signature" value="58bc39b8f604ee1f18171fee4828ef8967f3d2721676570e115d68c2f133820cbb833976f18955516b2b7d0c3d9660fea613a2ad90c240bd02c1eefa4a55e9038ce74dcfdd34e278ea0436e261131a36fa4e922f0a077ca1c9842f654928aac3ca7f9341075f9db275d8286b5ef13e7f91b4837e77b2a6dbea83f86b90f848331053d8a6b1fbc26787992e7fb819a2005bae9b3026b9c7d1158e88e4a2018f13757083c7873241d2dfe6ea46a17cd6f3d090f3e0da44ccfbd6bc425124de1bea744a32f3ab175672a991ef274cd83550eca57ea591b85fa9799098a38ec552dc3ec679c431491444820624f5c4ba0c8cf87d60af89899afce2a90325c6966dcf"> <input name="file" type="file"> <input type="submit" value="Upload"> </form>
C++
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.
C#
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage para C#.
Java
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.
Go
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.
Node.js
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.
PHP
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage para PHP.
Python
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.
Ruby
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.
Como prática recomendada, use o cabeçalho Expect: 100-continue
com solicitações POST. Isso permite verificar se o servidor gerenciará a solicitação antes de enviar o objeto. Se você receber um código de status 100 Continue
, prossiga com a solicitação. Se você receber um código de status 417 Expectation Failed
, não envie o objeto.