Uploads baseados no navegador usando POST (AWS Signature Version 4)
Esta seção explica como fazer upload de arquivos diretamente no Amazon S3 por meio de um navegador usando solicitações HTTP POST. Ela também contém informações sobre como usar a biblioteca JavaScript do AWS Amplify para uploads de arquivos baseados no navegador no Amazon S3.
Tópicos
Uploads baseados no navegador usando HTTP POST
O Amazon S3 é compatível com solicitações HTTP POST para que os usuários possam fazer upload de conteúdo diretamente no Amazon S3. Ao usar POST, os usuários finais podem autenticar solicitações sem precisar transmitir dados por meio de um nó intermediário seguro que protege suas credenciais. Assim, o HTTP POST tem o potencial de reduzir a latência.
A figura a seguir mostra um upload do Amazon S3 usando uma solicitação POST.
-
O usuário acessa sua página em um navegador da Web.
-
A página da Web tem um formulário HTML que contém toda as informações necessárias para que o usuário faça upload de conteúdo no Amazon S3.
-
O usuário faz upload do conteúdo no Amazon S3 por meio do navegador da Web.
O processo para enviar solicitações POST baseadas no navegador é o seguinte:
-
Crie uma política de segurança especificando condições que restrinjam o que você deseja permitir na solicitação, como o nome do bucket em que os objetos podem ser carregados e os prefixos do nome da chave que você deseja permitir para o objeto que está sendo criado.
-
Crie uma assinatura com base na política. Para solicitações autenticadas, o formulário deve incluir uma assinatura válida e a política.
-
Crie um formulário HTML que os usuários possam acessar para fazer upload de objetos no bucket do Amazon S3.
A seção a seguir descreve como criar uma assinatura para autenticar uma solicitação. Para obter informações sobre como criar formulários e políticas de segurança, consulte Criação de um formulário HTML (usando o AWS Signature Version 4).
Cálculo de uma assinatura
Para solicitações autenticadas, o formulário HTML deve incluir campos para uma política de segurança e uma assinatura.
-
Uma política de segurança (consulte Política de POST) controla o que é permitido na solicitação.
-
A política de segurança é a
StringToSign(consulte Introdução à assinatura de solicitações) no cálculo da assinatura.
Para calcular uma assinatura
-
Crie uma política usando a codificação UTF-8.
-
Converta os bytes da política com codificação UTF-8 em base64. O resultado é a
StringToSign. -
Crie uma chave de assinatura.
-
Use a chave de assinatura para assinar a
StringToSignusando o algoritmo de assinatura HMAC-SHA256.
Para obter mais informações sobre a criação de formulários HTML, políticas de segurança e um exemplo, consulte: