View a markdown version of this page

Objeto POST - Amazon Simple Storage Service

Objeto POST

Descrição

A operação POST adiciona um objeto a um bucket especificado usando formulários HTML. POST é uma forma alternativa de PUT que permite uploads baseados no navegador como forma de colocar objetos em buckets. Os parâmetros transmitidos para PUT por meio de cabeçalhos HTTP são passados como campos de formulário para POST no corpo da mensagem com codificação multipart/form-data. Para adicionar um objeto a um bucket, é preciso ter acesso de WRITE no bucket. O Amazon S3 nunca armazena objetos parciais. Se você receber uma resposta bem-sucedida, pode ter certeza de que o objeto inteiro foi armazenado.

O Amazon S3 é um sistema distribuído. A menos que você tenha habilitado o versionamento para um bucket, se o Amazon S3 receber diversas solicitações de gravação para o mesmo objeto simultaneamente, apenas a última versão gravada do objeto será armazenada.

Para garantir que os dados não sejam corrompidos ao atravessar a rede, use o campo de formulário Content-MD5. Quando você usa esse campo, o Amazon S3 verifica o objeto em relação ao valor MD5 fornecido. Se eles não corresponderem, o Amazon S3 retornará um erro. Além disso, você pode calcular o valor MD5 ao publicar um objeto no Amazon S3 e comparar o ETag retornado com o valor calculado de MD5. O ETag reflete as alterações apenas no conteúdo de um objeto, não nos metadados.

nota

Para configurar seu aplicativo para enviar os cabeçalhos da solicitação antes de enviar o corpo da solicitação, use o código de status HTTP 100 (Continue). Para operações POST, o uso desse código de status ajuda a evitar o envio do corpo da mensagem se a mensagem for rejeitada com base nos cabeçalhos (por exemplo, devido a uma falha de autenticação ou um redirecionamento). Para obter mais informações sobre o código de status HTTP 100 (Continue), acesse a Seção 8.2.3 de http://www.ietf.org/rfc/rfc2616.txt.

O Amazon S3 criptografa automaticamente todos os novos objetos que são carregados em um bucket do S3. A configuração de criptografia de um objeto carregado depende da configuração de criptografia padrão do bucket de destino. Por padrão, todos os buckets têm uma configuração de criptografia padrão que usa criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3).

Se o bucket de destino tiver uma configuração de criptografia padrão que usa criptografia do lado do servidor com uma chave do AWS Key Management Service (AWS KMS) (SSE-KMS), uma criptografia de camada dupla do lado do servidor com uma chave do AWS KMS (DSSE-KMS) ou uma chave de criptografia fornecida pelo cliente (SSE-C), o Amazon S3 usará a chave do KMS correspondente ou uma chave fornecida pelo cliente para criptografar o objeto carregado. Ao carregar um objeto, se você quiser alterar a configuração de criptografia do objeto carregado, poderá especificar o tipo de criptografia no lado do servidor. Você pode configurar SSE-S3, SSE-KMS, DSSE-KMS ou SSE-C. Para obter mais informações, consulte Proteção de dados usando criptografia no lado do servidor no Guia do usuário do Amazon Simple Storage Service.

Importante

Ao criar sua solicitação, o campo file deve ser o último campo no formulário.

Solicitações

Sintaxe

POST / HTTP/1.1 Host: destinationBucket.s3.amazonaws.com User-Agent: browser_data Accept: file_types Accept-Language: Regions Accept-Encoding: encoding Accept-Charset: character_set Keep-Alive: 300 Connection: keep-alive Content-Type: multipart/form-data; boundary=9431149156168 Content-Length: length --9431149156168 Content-Disposition: form-data; name="key" acl --9431149156168 Content-Disposition: form-data; name="tagging" <Tagging><TagSet><Tag><Key>Tag Name</Key><Value>Tag Value</Value></Tag></TagSet></Tagging> --9431149156168 Content-Disposition: form-data; name="success_action_redirect" success_redirect --9431149156168 Content-Disposition: form-data; name="Content-Type" content_type --9431149156168 Content-Disposition: form-data; name="x-amz-meta-uuid" uuid --9431149156168 Content-Disposition: form-data; name="x-amz-meta-tag" metadata --9431149156168 Content-Disposition: form-data; name="AWSAccessKeyId" access-key-id --9431149156168 Content-Disposition: form-data; name="Policy" encoded_policy --9431149156168 Content-Disposition: form-data; name="Signature" signature= --9431149156168 Content-Disposition: form-data; name="file"; filename="MyFilename.jpg" Content-Type: image/jpeg file_content --9431149156168 Content-Disposition: form-data; name="submit" Upload to Amazon S3 --9431149156168--

Parâmetros da solicitação

Essa implementação da operação não usa parâmetros de solicitação.

Campos do formulário

Esta operação pode usar os seguintes campos de formulário.

Name (Nome) Descrição Obrigatório
AWSAccessKeyId

O ID da chave de acesso da AWS do proprietário do bucket que concede acesso a um usuário anônimo para uma solicitação que satisfaz o conjunto de restrições na política.

Tipo: string

Padrão: nenhum

Restrições: será obrigatório se um documento de política estiver incluso na solicitação.

Condicional

acl

A lista de controle de acesso (ACL) do Amazon S3 especificada. Se a ACL especificada não for válida, um erro será gerado. Para obter mais informações sobre ACLs, consulte Visão geral da lista de controle de acesso (ACL) no Guia do usuário do Amazon Simple Storage Service.

Tipo: string

Padrão: privado

Valores válidos: private | public-read | public-read-write | aws-exec-read | authenticated-read | bucket-owner-read | bucket-owner-full-control

Não

Cache-Control, Content-Type, Content-Disposition, Content-Encoding, Expires

Os cabeçalhos específicos para REST. Para obter mais informações, consulte PutObject.

Tipo: string

Padrão: nenhum

Não

file

Conteúdo de arquivo ou texto.

Esse conteúdo deve ser o último campo no formulário.

Não carregue mais de um arquivo por vez.

Tipo: conteúdo de arquivo ou texto

Padrão: nenhum

Sim

key

O nome da chave carregada.

Para usar o nome de arquivo fornecido pelo usuário, use a variável ${filename}. Por exemplo, se uma usuária chamada Mary fizer upload do arquivo example.jpg e você especificar /user/mary/${filename}, o nome da chave será /user/mary/example.jpg.

Para obter mais informações, consulte Chave e metadados de objeto no Guia do usuário do Amazon Simple Storage Service.

Tipo: string

Padrão: nenhum

Sim

policy

Política de segurança que descreve o que é permitido na solicitação. As solicitações sem uma política de segurança são consideradas anônimas e funcionam apenas em buckets com gravação pública. Para obter mais informações, consulte Formulários HTML e Exemplos de upload no Guia do usuário do Amazon Simple Storage Service.

Tipo: string

Padrão: nenhum

Restrições: uma política de segurança será necessária se o bucket não puder ser gravado publicamente.

Condicional

success_action_redirect, redirect

O URL para o qual o cliente é redirecionado após um upload bem-sucedido.

Se success_action_redirect não for especificado, o Amazon S3 retornará o tipo de documento vazio especificado no campo success_action_status.

Se o Amazon S3 não conseguir interpretar o URL, o campo será ignorado.

Se houver falha no upload, o Amazon S3 exibirá um erro e não redirecionará o usuário para um URL.

Tipo: string

Padrão: nenhum

nota

O nome do campo redirect está obsoleto e o suporte para redirect será removido no futuro.

Não

success_action_status

Se você não especificar success_action_redirect, o código de status será retornado ao cliente quando o upload for bem-sucedido.

Esse campo aceita os valores 200, 201 ou 204 (o padrão).

Se o valor estiver definido como 200 ou 204, o Amazon S3 retornará um documento vazio com um código de status 200 ou 204.

Se o valor estiver definido como 201, o Amazon S3 retornará um documento XML com um código de status 201.

Se o valor não estiver definido ou se estiver definido como um valor inválido, o Amazon S3 retornará um documento vazio com um código de status 204.

Tipo: string

Padrão: nenhum

Não

tagging

O conjunto de tags especificado a ser adicionado ao objeto. Para adicionar tags, use o seguinte esquema de codificação.

<Tagging> <TagSet> <Tag> <Key>TagName</Key> <Value>TagValue</Value> </Tag> ... </TagSet> </Tagging>

Para obter mais informações, consulte Marcação de objetos no Guia do usuário do Amazon Simple Storage Service.

Tipo: string

Padrão: nenhum

Não

x-amz-storage-class

A classe de armazenamento a ser usada para armazenar o objeto. Se você não especificar uma classe, o Amazon S3 usará a classe de armazenamento padrão, STANDARD. O Amazon S3 oferece suporte a outras classes de armazenamento. Para obter mais informações, consulte Classes de armazenamento no Guia do usuário do Amazon Simple Storage Service.

Tipo: string

Padrão: STANDARD

Valores válidos: REDUCED_REDUNDANCY |EXPRESS_ONEZONE | DEEP_ARCHIVE | GLACIER | GLACIER_IR | INTELLIGENT_TIERING | ONEZONE_IA | STANDARD | STANDARD_IA

Não

x-amz-meta-*

Os cabeçalhos que começam com esse prefixo são metadados definidos pelo usuário. Cada um é armazenado e retornado como um conjunto de pares de chave-valor. O Amazon S3 não valida nem interpreta metadados definidos pelo usuário. Para obter mais informações, consulte PutObject.

Tipo: string

Padrão: nenhum

Não

x-amz-security-token

O token de segurança do Amazon DevPay.

Cada solicitação que usa o Amazon DevPay requer dois campos do formulário x-amz-security-token: um para o token de produto e outro para o token de usuário.

Tipo: string

Padrão: nenhum

Não

x-amz-signature

(AWS Signature Version 4) O hash HMAC-SHA256 da política de segurança.

Tipo: string

Padrão: nenhum

Condicional

x-amz-website-redirect-location

Se o bucket estiver configurado como um site, esse campo vai redirecionar solicitações desse objeto para outro objeto no mesmo bucket ou para um URL externo. O Amazon S3 armazena o valor desse cabeçalho nos metadados de objeto. Para obter informações sobre metadados de objeto, consulte Chave e metadados de objeto no Guia do usuário do Amazon Simple Storage Service.

No exemplo a seguir, o cabeçalho da solicitação define o redirecionamento para um objeto (anotherPage.html) no mesmo bucket:

x-amz-website-redirect-location: /anotherPage.html

No exemplo a seguir, o cabeçalho da solicitação define o redirecionamento do objeto para outro site:

x-amz-website-redirect-location: http://www.example.com/

Para obter mais informações sobre hospedagem de sites no Amazon S3, consulte Hospedagem de sites no Amazon S3 e Como configurar redirecionamentos de páginas de sites no Guia do usuário do Amazon Simple Storage Service.

Tipo: string

Padrão: nenhum

Restrições: o valor deve ter o prefixo /, http:// ou https://. O tamanho do valor é limitado a 2 KB.

Não

Campos adicionais do formulário de solicitação de soma de verificação

Ao fazer upload de um objeto, você pode especificar várias somas de verificação que deseja usar para verificar a integridade dos seus dados. Você pode especificar um algoritmo de soma de verificação adicional a ser usado pelo Amazon S3. Para obter mais informações sobre valores adicionais de soma de verificação, consulte Verificação da integridade do objeto no Guia do usuário do Amazon Simple Storage Service.

Name (Nome) Descrição Obrigatório
x-amz-checksum-algorithm

Indica o algoritmo usado para criar a soma de verificação do objeto. Se um valor for especificado, você deverá incluir o cabeçalho de soma de verificação correspondente. Caso contrário, sua solicitação gerará um erro 400.

Os possíveis valores incluem: CRC32, CRC32C, SHA1 e SHA256.

Não
x-amz-checksum-crc32

Especifica a soma de verificação CRC32 de 32 bits com codificação base64 do objeto.

Esse parâmetro será necessário quando o valor de x-amz-checksum-algorithm for CRC32.

Condicional
x-amz-checksum-crc32c

Especifica a soma de verificação CRC32C de 32 bits com codificação base64 do objeto.

Esse parâmetro será necessário quando o valor de x-amz-checksum-algorithm for CRC32C.

Condicional
x-amz-checksum-sha1

Especifica o resumo SHA-1 de 160 bits com codificação base64 do objeto.

Esse parâmetro será necessário quando o valor de x-amz-checksum-algorithm for SHA1.

Condicional
x-amz-checksum-sha256

Especifica o resumo SHA-256 de 256 bits com codificação base64 do objeto.

Esse parâmetro será necessário quando o valor de x-amz-checksum-algorithm for SHA256.

Condicional

Campos do formulário de solicitação específicos para criptografia no lado do servidor

A criptografia no lado do servidor é a criptografia de dados em repouso. O Amazon S3 criptografa os dados ao gravá-los em discos nos data centers da AWS e os descriptografa quando você os acessa. Ao fazer upload de um objeto, você pode especificar o tipo de criptografia no lado do servidor que deseja que o Amazon S3 use para criptografar o objeto.

Há quatro tipos de criptografia no lado do servidor:

  • Criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3): desde maio de 2022, todos os buckets do Amazon S3 têm a criptografia configurada por padrão. A opção padrão para a criptografia do lado do servidor é com SSE-S3. Cada objeto é criptografado com uma chave exclusiva. Como uma proteção adicional, a SSE-S3 criptografa a própria chave com uma chave-raiz que alterna regularmente. A SSE-S3 usa uma das cifras de bloco mais fortes disponíveis, o padrão de criptografia avançada de 256 bits (AES-256), para criptografar os dados.

  • Criptografia do lado do servidor com chaves do AWS KMS (SSE-KMS): SSE-KMS é fornecido por meio de uma integração do serviço AWS KMS com o Amazon S3. Com o AWS KMS, você tem mais controle sobre suas chaves. Por exemplo, você pode visualizar chaves separadas, editar políticas de controle e seguir as chaves no AWS CloudTrail. Além disso, é possível criar e gerenciar chaves gerenciadas pelo cliente ou usar Chaves gerenciadas pela AWS que são exclusivas para você, para o seu serviço e para a sua região.

  • Criptografia de camada dupla do lado do servidor com chaves do AWS KMS (DSSE-KMS): a criptografia de camada dupla do lado do servidor com AWS KMS keys (DSSE-KMS) é semelhante à SSE-KMS, mas aplica duas camadas individuais de criptografia no nível do objeto em vez apenas uma.

  • Criptografia do lado do servidor com chaves fornecidas pelo cliente (SSE-C): com SSE-C, você gerencia as chaves de criptografia e o Amazon S3 gerencia a criptografia, ao gravar em discos, e a descriptografia, quando você acessa os objetos.

    nota

    Se você tiver a criptografia do lado do servidor com chaves fornecidas pelo cliente (SSE-C) bloqueada para seu bucket de uso geral, receberá um erro HTTP 403 Acesso negado ao especificar os cabeçalhos de solicitação de SSE-C ao gravar novos dados no bucket. Para obter mais informações, consulte Bloqueio ou desbloqueio de SSE-C para um bucket de uso geral.

Para obter mais informações, consulte Como proteger dados usando criptografia do lado do servidor no Guia do usuário do Amazon Simple Storage Service.

Dependendo do tipo de criptografia do lado do servidor que você deseja usar, especifique os campos de formulário a seguir.

  • Usar SSE-S3, SSE-KMS ou DSSE-KMS: se você quiser usar esses tipos de criptografia do lado do servidor, especifique os campos de formulário a seguir na solicitação.

    Name (Nome) Descrição Obrigatório
    x-amz-server-side-encryption

    Especifica o algoritmo de criptografia do lado do servidor a ser usado quando o Amazon S3 cria um objeto. Para usar SSE-S3, especifique AES256. Para usar SSE-KMS, especifique aws:kms. Para usar DSSE-KMS, especifique aws:kms:dsse.

    Tipo: string

    Valor válido: aws:kms, AES256, aws:kms:dsse

    Sim
    x-amz-server-side-encryption-aws-kms-key-id

    Se o cabeçalho x-amz-server-side-encryption tiver um valor válido de aws:kms ou aws:kms:dsse, esse cabeçalho vai especificar o ID da AWS KMS key que foi usada para criptografar o objeto.

    Tipo: string

    Sim, se o valor de x-amz-server-side-encryption for aws:kms ou aws:kms:dsse
    x-amz-server-side-encryption-context

    Se x-amz-server-side-encryption tiver um valor válido de aws:kms ou aws:kms:dsse, esse cabeçalho vai especificar o contexto de criptografia do objeto. O valor deste cabeçalho é uma string UTF-8 com codificação base64 que contém pares de chave-valor formatados em JSON para o contexto de criptografia.

    Tipo: string

    Não
    x-amz-server-side-encryption-bucket-key-enabled

    Se x-amz-server-side-encryption tiver um valor válido de aws:kms ou aws:kms:dsse, esse cabeçalho vai especificar se o Amazon S3 deve usar uma chave de bucket do S3 com SSE-KMS ou DSSE-KMS. Definir esse cabeçalho como true faz com que o Amazon S3 use uma chave de bucket do S3 para criptografia de objetos com SSE-KMS ou DSSE-KMS.

    Tipo: booliano

    Não
    nota

    Se você especificar x-amz-server-side-encryption:aws:kms ou x-amz-server-side-encryption:aws:kms:dsse, mas não fornecer x-amz-server-side-encryption-aws-kms-key-id, o Amazon S3 usará Chave gerenciada pela AWS (aws/S3) para proteger os dados.

  • Usar SSE-C: se você quiser gerenciar suas próprias chaves de criptografia, deverá fornecer todos os seguintes campos de formulário na solicitação.

    nota

    Se você usar SSE-C, o valor de ETag que o Amazon S3 retorna na resposta não será o MD5 do objeto.

    Name (Nome) Descrição Obrigatório
    x-amz-server-side-encryption-customer-algorithm

    Especifica o algoritmo a ser usado ao criptografar o objeto.

    Tipo: string

    Padrão: nenhum

    Valor válido: AES256

    Restrições: deve ser acompanhado por campos x-amz-server-side-encryption-customer-key e x-amz-server-side-encryption-customer-key-MD5 válidos.

    Sim
    x-amz-server-side-encryption-customer-key

    Especifica a chave de criptografia com codificação base64 fornecida pelo cliente para o Amazon S3 usar na criptografia de dados. Esse valor é usado para armazenar o objeto e, em seguida, é descartado. A Amazon não armazena a chave de criptografia. A chave deve ser apropriada para uso com o algoritmo especificado no cabeçalho x-amz-server-side-encryption-customer-algorithm.

    Tipo: string

    Padrão: nenhum

    Restrições: deve ser acompanhado por campos x-amz-server-side-encryption-customer-algorithm e x-amz-server-side-encryption-customer-key-MD5 válidos.

    Sim
    x-amz-server-side-encryption-customer-key-MD5

    Especifica o resumo MD5 com codificação base64 de 128 bits da chave de criptografia de acordo com RFC 1321. O Amazon S3 usa esse cabeçalho para fazer uma verificação de integridade de mensagens e conferir se a chave de criptografia foi transmitida sem erros.

    Tipo: string

    Padrão: nenhum

    Restrições: deve ser acompanhado por campos x-amz-server-side-encryption-customer-algorithm e x-amz-server-side-encryption-customer-key válidos.

    Sim

Respostas

Cabeçalhos de resposta

Essa implementação da operação pode incluir os seguintes cabeçalhos de resposta, além dos cabeçalhos que são comuns a todas as respostas. Para obter mais informações, consulte Cabeçalhos de resposta comuns.

Name (Nome) Descrição
x-amz-checksum-crc32

A soma de verificação CRC32 de 32 bits com codificação base64 do objeto.

Tipo: string

x-amz-checksum-crc32c

A soma de verificação CRC32C de 32 bits com codificação base64 do objeto.

Tipo: string

x-amz-checksum-sha1

O resumo SHA-1 de 160 bits com codificação base64 do objeto.

Tipo: string

x-amz-checksum-sha256

O resumo SHA-256 de 256 bits com codificação base64 do objeto.

Tipo: string

x-amz-expiration

Se uma ação Expiration for configurada para o objeto como parte da configuração do ciclo de vida do bucket, o Amazon S3 retornará esse cabeçalho.  O valor do cabeçalho inclui um componente expiry-date e um componente rule-id codificado em URL.  Para buckets com versão habilitada, esse cabeçalho se aplica somente às versões atuais. O Amazon S3 não fornece um cabeçalho para indicar quando uma versão não atual está qualificada para exclusão permanente. Para obter mais informações, consulte PutBucketLifecycleConfiguration.

Tipo: string

success_action_redirect, redirect

O URL para o qual o cliente é redirecionado após um upload bem-sucedido.

Tipo: string

Ancestral: PostResponse

x-amz-server-side-encryption

O algoritmo de criptografia no lado do servidor que foi usado para armazenar esse objeto no Amazon S3 (por exemplo, AES256, aws:kms, aws:kms:dsse).

Tipo: string

x-amz-server-side-encryption-aws-kms-key-id

Se o cabeçalho x-amz-server-side-encryption tiver um valor válido de aws:kms, esse cabeçalho vai especificar o ID da chave do KMS que foi usada para criptografar o objeto.

Tipo: string

x-amz-server-side-encryption-bucket-key-enabled

Se x-amz-server-side-encryption tiver um valor válido de aws:kms, esse cabeçalho vai indicar se o objeto está criptografado com SSE-KMS usando uma chave de bucket do S3. Se esse cabeçalho estiver definido como true, o objeto vai usar uma chave de bucket do S3 com SSE-KMS.

Tipo: booliano

x-amz-server-side-encryption-customer-algorithm

Se SSE-C tiver sido solicitado, a resposta incluirá esse cabeçalho, que confirma o algoritmo de criptografia usado.

Tipo: string

Valores válidos: AES256

x-amz-server-side-encryption-customer-key-MD5

Se SSE-C tiver sido solicitado, a resposta incluirá esse cabeçalho para verificar a integridade da mensagem de ida e volta da chave de criptografia fornecida pelo cliente.

Tipo: string

x-amz-version-id

Versão do objeto.

Tipo: string

Elementos de resposta

Name (Nome) Descrição
Bucket

O nome do bucket em que o objeto foi armazenado.

Tipo: string

Antepassado: PostResponse

ETag

O ETag (identificador de entidade) é um hash MD5 do objeto que você pode usar para fazer operações GET condicionais usando a tag de solicitação If-Modified com a operação de solicitação GET. O ETag reflete alterações apenas no conteúdo de um objeto, não nos metadados.

Tipo: string

Antepassado: PostResponse

Key

O nome da chave de objeto.

Tipo: string

Antepassado: PostResponse

Location

O URI do objeto.

Tipo: string

Antepassado: PostResponse

Erros especiais

Essa implementação da operação não retorna erros especiais. Para obter informações gerais sobre erros do Amazon S3 e uma lista de códigos de erro, consulte Respostas de erro.

Exemplos

Exemplo de solicitação

POST /Neo HTTP/1.1 Content-Length: 4 Host: quotes.s3.amazonaws.com Date: Wed, 01 Mar 2006 12:00:00 GMT Authorization: authorization string Content-Type: text/plain Expect: the 100-continue HTTP status code ObjectContent

Resposta de exemplo com versionamento suspenso

Veja a seguir uma resposta de exemplo quando o versionamento do bucket está suspenso:

HTTP/1.1 100 Continue HTTP/1.1 200 OK x-amz-id-2: LriYPLdmOdAiIfgSm/F1YsViT1LW94/xUQxMsF7xiEb1a0wiIOIxl+zbwZ163pt7 x-amz-request-id: 0A49CE4060975EAC x-amz-version-id: default Date: Wed, 12 Oct 2009 17:50:00 GMT ETag: "1b2cf535f27731c974343645a3985328" Content-Length: 0 Connection: close Server: AmazonS3

Nessa resposta, o ID da versão é null.

Resposta de exemplo com versionamento habilitado

Veja a seguir uma resposta de exemplo quando o versionamento do bucket está habilitado.

HTTP/1.1 100 Continue HTTP/1.1 200 OK x-amz-id-2: LriYPLdmOdAiIfgSm/F1YsViT1LW94/xUQxMsF7xiEb1a0wiIOIxl+zbwZ163pt7 x-amz-request-id: 0A49CE4060975EAC x-amz-version-id: 43jfkodU8493jnFJD9fjj3HHNVfdsQUIFDNsidf038jfdsjGFDSIRp Date: Wed, 01 Mar 2006 12:00:00 GMT ETag: "828ef3fdfa96f00ad9f27c383fc9ac7f" Content-Length: 0 Connection: close Server: AmazonS3