Agora que temos nossa tabela no DynamoDB pronta, vamos configurar a parte que lida com upload de arquivos. Precisamos permitir uploads pois cada anotação pode ter um arquivo como anexo.

O Amazon S3 (Simple Storage Service) fornece um serviço de armazenamento pela interface web como REST. Você pode armazenar qualquer arquivo no S3 incluindo imagens, vídeos, etc. Os arquivos (objetos) são organizados em buckets que são identificados com um nome único, atribuído por uma chave única por usuário.

Neste capítulo, nós vamos criar um bucket no S3 que será utilizado para armazenar os arquivos que cada usuário fez o upload pelo nosso app.

Criar um Bucket

Primeiro, faça o login no Console da AWS e selecione o S3 na lista de serviços.

Tela de seleção do S3

Selecione Criar bucket.

Tela para criar bucket no S3

Digite um nome para o bucket e selecione uma região. Depois clique no botão Criar.

  • Nomes do buckets são globalmente únicos, então você deve criar um nome único ainda não utilizado.
  • Região é uma região demográfica onde os arquivos são armazenados fisicamente em servidores. No tutorial será utilizado a Leste dos EUA (Norte da Virgínia), mas se estiver no Brasil, recomenda-se utilizar a América do Sul (São Paulo)

Guarde o nome da região que utilizar, pois vamos precisar disso mais tarde.

Tela de informações do bucket S3

Siga os próximos passos e aceite as configurações padrões clicando em Próximo e clique em Criar bucket no último passo.

Tela de propriedades do bucket Tela de permissões do bucket Tela de review de criação do bucket

Habilitar CORS

No app de anotações, os usuários farão upload de arquivos para o bucket que acabamos de criar. Nosso app será hospedado em um domínio customizado e vai estabelecer uma comunicação entre domínios no ato do upload. Por padrão, S3 não permite acesso ao bucket a partir de domínios diferentes. Entretanto, o CORS permite que isso aconteça, basta ativá-lo no bucket.

Selecione o bucket que acabamos de criar (clique bem em cima do nome).

Tela de seleção de buckets no S3

Selecione a aba the Permissões, e clique em Configuração de CORS.

Tela de permissões do bucket no S3

Coloque essas configurações no editor que aparece e depois clique em Salvar.

<CORSConfiguration>
	<CORSRule>
		<AllowedOrigin>*</AllowedOrigin>
		<AllowedMethod>GET</AllowedMethod>
		<AllowedMethod>PUT</AllowedMethod>
		<AllowedMethod>POST</AllowedMethod>
		<AllowedMethod>HEAD</AllowedMethod>
		<AllowedMethod>DELETE</AllowedMethod>
		<MaxAgeSeconds>3000</MaxAgeSeconds>
		<AllowedHeader>*</AllowedHeader>
	</CORSRule>
</CORSConfiguration>

Você também pode editar essa configuração para utilizar seu próprio domínio ou uma lista que queira permitir o acesso, uma vez que desejar usar em produção.

Tela de edição das políticas de CORS

Agora que temos nosso bucket no S3 pronto, vamos configurar autenticação de usuários.