Amazon Simple Storage Service (S3) - AWS Mobile SDK

O AWS Mobile SDK for Xamarin agora está incluído no AWS SDK for .NET. Este guia faz referência à versão arquivada do Mobile SDK para Xamarin.

Amazon Simple Storage Service (S3)

O que é o S3?

O Amazon Simple Storage Service (Amazon S3) oferece aos desenvolvedores um armazenamento de objetos seguro, duradouro e altamente dimensionável. O Amazon S3 é fácil de usar, com uma interface simples de serviços da web para armazenar e recuperar qualquer quantidade de dados de qualquer lugar da web. Com o Amazon S3, você paga apenas pelo armazenamento realmente utilizado. Não há taxa mínima nem custo de configuração.

O Amazon S3 oferece um armazenamento de objetos econômico para uma ampla gama de casos de uso, incluindo aplicativos de nuvem, distribuição de conteúdo, backup e arquivamento, recuperação de desastres e análise de big data.

Para obter informações sobre a disponibilidade de regiões do AWS S3, consulte Disponibilidade de regiões do Serviço da AWS.

Principais conceitos

Bucket

Cada objeto armazenado no Amazon S3 reside em um bucket. Você pode usar buckets para agrupar objetos relacionados da mesma forma como usa um diretório para agrupar arquivos em um sistema de arquivos. Os buckets têm propriedades, como permissões de acesso e status de versionamento, e você pode especificar a região em que eles devem residir.

Para saber mais sobre os buckets do S3, consulte Trabalho com buckets no Guia do desenvolvedor do S3.

Objetos

Os objetos são os dados que você armazena no Amazon S3. Cada objeto reside em um bucket criado em uma região específica da AWS.

Os objetos armazenados em uma região nunca saem dela, a não ser que você os transfira explicitamente para outra região. Por exemplo, os objetos armazenados na região da UE (Irlanda) nunca saem dela. Os objetos armazenados em uma região do Amazon S3 permanecem fisicamente nessa região. O Amazon S3 não mantém cópias nem as move para nenhuma outra região. No entanto, você pode acessar os objetos de qualquer lugar, desde que tenha as permissões necessárias.

Os objetos podem ser qualquer tipo de arquivo: imagens, dados de backup, filmes etc. Um objeto pode ter até 5 TB. Você pode ter um número ilimitado de objetos em um bucket.

Para que possa fazer upload de um objeto no Amazon S3, você deverá ter permissões de gravação em um bucket. Para obter mais informações sobre como definir permissões de bucket, consulte Editar permissões do bucket no Guia do desenvolvedor do S3.

Para saber mais sobre os objetos do S3, consulte Trabalho com objetos no Guia do desenvolvedor do S3.

Metadados do objeto

Cada objeto no Amazon S3 tem um conjunto de pares de chave-valor que representa seus metadados. Existem dois tipos de metadados:

  • Metadados de sistema – Processados ocasionalmente pelo Amazon S3; por exemplo, Content-Type e Content-Length.

  • Metadados de usuário – Nunca processado pelo Amazon S3. Os metadados do usuário são armazenados com o objeto e retornados com ele. O tamanho máximo dos metadados do usuário é 2 KB; e tanto as chaves como os seus valores devem estar em conformidade com os padrões US-ASCII.

Para saber mais sobre os metadados de objeto do S3, consulte Editar metadados de objeto.

Configuração do projeto

Pré-requisitos

Para usar o Amazon S3 no aplicativo, você precisará adicionar o SDK ao projeto. Para fazer isso, siga as instruções em Configuração do AWS Mobile SDK para .NET e Xamarin.

Crie um bucket do S3

O Amazon S3 armazena os recursos do aplicativo em buckets do Amazon S3, contêineres de armazenamento na nuvem que residem em uma região específica. Cada bucket do Amazon S3 deve ter um nome globalmente exclusivo. Você pode usar o console do Amazon S3 para criar um bucket.

  1. Faça login no console do Amazon S3 e clique em Create Bucket (Criar bucket).

  2. Insira um nome de bucket, selecione uma região e clique em Create (Criar).

Definir permissões para o S3

A política padrão da função do IAM concede ao aplicativo acesso ao Amazon Mobile Analytics e ao Amazon Cognito Sync. Para que o grupo de identidades do Cognito acesse o Amazon S3, você deve modificar as funções do grupo de identidades.

  1. Acesse o console do Identity and Access Management e clique em Roles (Funções) no painel à esquerda.

  2. Digite o nome do grupo de identidades na caixa de pesquisa. Duas funções serão listadas: uma para os usuários autenticados e outra para os usuários não autenticados.

  3. Clique na função para usuários não autenticados (ela terá "unauth" anexado ao nome do grupo de identidades).

  4. Clique em Create Role Policy (Criar política de função), selecione Policy Generator (Gerador de políticas) e, em seguida, clique em Select (Selecionar).

  5. Na página Edit Permissions (Editar permissões), insira as configurações mostradas na imagem a seguir, substituindo o Nome de recurso da Amazon (ARN) pelo seu nome. O ARN do bucket do S3 é semelhante ao arn:aws:s3:::examplebucket/* e composto pela região na qual o bucket está localizado e pelo nome do bucket. As configurações mostradas abaixo concederão ao grupo de identidades acesso total a todas as ações do bucket especificado.

    Edit Permissions interface for AWS policy creation, showing options for Amazon S3 access control.
  1. Clique no botão Add Statement (Adicionar instrução) e em Next Step (Próxima etapa).

  2. O assistente mostrará a você a configuração gerada. Clique em Apply Policy (Aplicar política).

Para obter mais informações sobre como conceder acesso ao S3, consulte Conceder acesso a um bucket do Amazon S3.

(opcional) Configuração da versão de assinatura para solicitações do S3

Cada interação com o Amazon S3 é autenticada ou anônima. A AWS usa os algoritmos do Signature versão 4 ou Signature versão 2 para autenticar chamadas para o serviço.

Todas as novas regiões da AWS criadas após janeiro de 2014 são compatíveis apenas com o Signature versão 4. No entanto, muitas regiões mais antigas ainda oferecem suporte às solicitações do Signature versão 4 e do Signature versão 2.

Se o bucket estiver em uma das regiões incompatíveis com as solicitações do Signature versão 2, conforme a lista nesta página, será preciso configurar a propriedade do AWSConfigsS3.UseSignatureVersion4 como "true" (verdadeira), da seguinte forma:

AWSConfigsS3.UseSignatureVersion4 = true;

Para obter mais informações sobre as versões do AWS Signature, consulte Solicitações de autenticação (AWS Signature Version 4).

Integração do S3 ao aplicativo

Há duas maneiras de interagir com o S3 no aplicativo Xamarin. Esses dois métodos são descritos detalhadamente nos tópicos a seguir:

Tópicos