View a markdown version of this page

Exemplos: cálculos de assinatura no AWS Signature Version 4 - Amazon Simple Storage Service

Exemplos: cálculos de assinatura no AWS Signature Version 4

Para solicitações autenticadas, a menos que você esteja usando os SDKs da AWS, é necessário gravar código para calcular assinaturas que forneçam informações de autenticação em suas solicitações. O cálculo da assinatura no AWS Signature Versão 4 (consulte Autenticação de solicitações (AWS Signature Version 4)) pode ser uma tarefa complexa, então é recomendável usar os SDKs da AWS sempre que possível.

Esta seção fornece exemplos de cálculos de assinatura gravados em Java e C#. Os exemplos de código enviam as seguintes solicitações e usam o cabeçalho HTTP Authorization para fornecer informações de autenticação:

O restante desta seção descreve os exemplos em Java e C#. Os tópicos incluem instruções para baixar os exemplos e executá-los.

Exemplos de cálculo de assinatura usando Java (AWS Signature Version 4)

O exemplo Java que mostra o cálculo da assinatura pode ser baixado em https://docs.aws.amazon.com/AmazonS3/latest/API/samples/AWSS3SigV4JavaSamples.zip. Esses exemplos usam o SDK da AWS para Java v1, e recomendamos o uso do SDK da AWS para Java v2 para novos aplicativos. Em RunAllSamples.java, a função main() executa solicitações de exemplo para criar um objeto, recuperar um objeto e criar um URL pré-assinado para o objeto. O exemplo cria um objeto a partir da string de texto fornecida no código:

PutS3ObjectSample.putS3Object(bucketName, regionName, awsAccessKey, awsSecretKey); GetS3ObjectSample.getS3Object(bucketName, regionName, awsAccessKey, awsSecretKey); PresignedUrlSample.getPresignedUrlToS3Object(bucketName, regionName, awsAccessKey, awsSecretKey); PutS3ObjectChunkedSample.putS3ObjectChunked(bucketName, regionName, awsAccessKey, awsSecretKey);
Para testar os exemplos em um computador Linux

As instruções a seguir servem para o sistema operacional Linux.

  1. Em um terminal, navegue até o diretório que contém AWSS3SigV4JavaSamples.zip.

  2. Extraia o arquivo .zip.

  3. Em um editor de texto, abra o arquivo ./com/amazonaws/services/s3/samples/RunAllSamples.java. Atualize o código com as seguintes informações:

    • O nome de um bucket em que o novo objeto pode ser criado.

      nota

      Os exemplos usam uma solicitação de estilo hospedado virtualmente para acessar o bucket. Para evitar possíveis erros, o nome do bucket deve estar de acordo com as regras de nomenclatura do bucket, conforme explicado em Restrições e limitações do bucket no Guia do usuário do Amazon Simple Storage Service.

    • Região da AWS onde o bucket reside.

      Se o bucket estiver na região Leste dos EUA (Norte da Virgínia), use us-east-1 para especificar a região. Para obter uma lista de outras Regiões da AWS, acesse Amazon Simple Storage Service (S3) na Referência geral da AWS.

  4. Compile o código-fonte e armazene as classes compiladas no diretório bin/.

    javac -d bin -source 6 -verbose com
  5. Altere o diretório para bin/ e, em seguida, execute RunAllSamples.

    java com.amazonaws.services.s3.sample.RunAllSamples

    O código executa todos os métodos em main(). Para cada solicitação, a saída mostrará a solicitação canônica, a string a ser assinada e a assinatura.

Exemplos de cálculos de assinatura usando C# (AWS Signature Version 4)

O exemplo de C# que mostra o cálculo da assinatura pode ser baixado em https://docs.aws.amazon.com/AmazonS3/latest/API/samples/AmazonS3SigV4_Samples_CSharp.zip. Esses exemplos usam o SDK da AWS para .NET v1, e recomendamos o uso do SDK da AWS para .NET v3 para novos aplicativos. Em Program.cs, a função main() executa solicitações de exemplo para criar um objeto, recuperar um objeto e criar um URL pré-assinado para o objeto. O código para o cálculo da assinatura está na pasta \Signers.

PutS3ObjectSample.Run(awsRegion, bucketName, "MySampleFile.txt"); Console.WriteLine("\n\n************************************************"); PutS3ObjectChunkedSample.Run(awsRegion, bucketName, "MySampleFileChunked.txt"); Console.WriteLine("\n\n************************************************"); GetS3ObjectSample.Run(awsRegion, bucketName, "MySampleFile.txt"); Console.WriteLine("\n\n************************************************"); PresignedUrlSample.Run(awsRegion, bucketName, "MySampleFile.txt");
Para testar os exemplos com o Microsoft Visual Studio 2010 ou posterior
  1. Extraia o arquivo .zip.

  2. Inicie o Visual Studio e, em seguida, abra o arquivo .sln.

  3. Atualize o arquivo App.config com credenciais de segurança válidas.

  4. Atualize o código da seguinte maneira:

    • Em Program.cs, forneça o nome do bucket e a Região da AWS onde o bucket reside. O exemplo cria um objeto nesse bucket.

  5. Execute o código.

  6. Para verificar se o objeto foi criado, copie o URL pré-assinado criado pelo programa e cole-o em uma janela do navegador.