Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exemples : calculs de signature dans AWS Signature Version 4
Rubriques
Pour les demandes authentifiées, sauf si vous utilisez les AWS SDK, vous devez écrire du code pour calculer les signatures qui fournissent des informations d'authentification dans vos demandes. Le calcul des AWS signatures dans la version 4 de Signature (voirDemandes d'authentification (AWS Signature (version 4)) peut être une tâche complexe, et nous vous recommandons d'utiliser les AWS kits de développement logiciel dans la mesure du possible.
Cette section fournit des exemples de calculs de signature écrits en Java et C#. Les exemples de code envoient les requêtes suivantes et utilisent l'en-tête HTTP Authorization pour fournir des informations d'authentification :
-
Objet PUT : des exemples distincts illustrent à la fois le téléchargement de la charge utile complète en une seule fois et le téléchargement de la charge utile par morceaux. Pour plus d'informations sur l'utilisation de l'en-tête Authorization pour l'authentification, consultezAuthentification des demandes : utilisation de l'en-tête d'autorisation (AWS Signature (version 4).
-
OBJET GET — Cet exemple génère une URL présignée pour obtenir un objet. Les paramètres de requête fournissent la signature et d'autres informations d'authentification. Les utilisateurs peuvent coller une URL présignée dans leur navigateur pour récupérer l'objet, ou vous pouvez utiliser l'URL pour créer un lien cliquable. Pour plus d'informations sur l'utilisation des paramètres de requête pour l'authentification, consultezAuthentification des demandes : utilisation des paramètres de requête (AWS Signature (version 4).
Le reste de cette section décrit les exemples en Java et en C#. Les rubriques incluent des instructions pour télécharger les exemples et les exécuter.
Exemples de calcul de signature à l'aide de Java (AWS Signature (version 4)
L'exemple Java qui montre le calcul des signatures peut être téléchargé à l'adresse https://docs.aws.amazon.com/AmazonS3/latest/API/samples/AWSS3SigV4JavaSamples.zip. Notez que ces exemples utilisent le AWS SDK pour Java v1, et nous vous recommandons d'utiliser le AWS SDK pour Java v2 pour les nouvelles applications. DansRunAllSamples.java, la main() fonction exécute des exemples de requêtes pour créer un objet, récupérer un objet et créer une URL présignée pour l'objet. L'exemple crée un objet à partir de la chaîne de texte fournie dans le code :
PutS3ObjectSample.putS3Object(bucketName, regionName, awsAccessKey, awsSecretKey); GetS3ObjectSample.getS3Object(bucketName, regionName, awsAccessKey, awsSecretKey); PresignedUrlSample.getPresignedUrlToS3Object(bucketName, regionName, awsAccessKey, awsSecretKey); PutS3ObjectChunkedSample.putS3ObjectChunked(bucketName, regionName, awsAccessKey, awsSecretKey);
Pour tester les exemples sur un Linux-based ordinateur
Les instructions suivantes concernent le système d'exploitation Linux.
-
Dans un terminal, accédez au répertoire qui contient
AWSS3SigV4JavaSamples.zip. -
Extrayez le fichier .zip.
-
Ouvrez le fichier
./com/amazonaws/services/s3/samples/RunAllSamples.javadans un éditeur de texte. Mettez à jour le code avec les informations suivantes :Le nom du compartiment dans lequel le nouvel objet peut être créé.
Note
Les exemples utilisent une requête de style hébergée virtuellement pour accéder au compartiment. Pour éviter d'éventuelles erreurs, assurez-vous que le nom de votre compartiment est conforme aux règles de dénomination des compartiments, comme expliqué dans la section Restrictions et limitations des compartiments du guide de l'utilisateur d'Amazon Simple Storage Service.
Région AWS où se trouve le seau.
Si le bucket se trouve dans la région USA Est (Virginie du Nord), utilisez us-east-1 pour spécifier la région. Pour en obtenir la liste des autres Régions AWS, accédez à Amazon Simple Storage Service (S3) dans le Références générales AWS.
-
Compilez le code source et stockez les classes compilées dans le
bin/répertoire.javac -d bin -source 6 -verbose com -
Remplacez le répertoire par
bin/, puis exécutezRunAllSamples.java com.amazonaws.services.s3.sample.RunAllSamplesLe code exécute toutes les méthodes de
main(). Pour chaque demande, la sortie affichera la demande canonique, la chaîne à signer et la signature.
Exemples de calculs de signature en C# (AWS Signature (version 4)
L'exemple C# qui montre le calcul des signatures peut être téléchargé à l'adresse https://docs.aws.amazon.com/AmazonS3/latest/API/samples/AmazonS3SigV4_Samples_CSharp.zip. Notez que ces exemples utilisent le AWS SDK pour .NET v1, et nous vous recommandons d'utiliser le AWS SDK pour .NET v3 pour les nouvelles applications. DansProgram.cs, la main() fonction exécute des exemples de requêtes pour créer un objet, récupérer un objet et créer une URL présignée pour l'objet. Le code pour le calcul des signatures se trouve dans le \Signers dossier.
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");
Pour tester les exemples avec Microsoft Visual Studio 2010 ou version ultérieure
-
Extrayez le fichier .zip.
-
Démarrez Visual Studio, puis ouvrez le fichier .sln.
-
Mettez à jour le App.config fichier avec des informations d'identification de sécurité valides.
-
Mettez à jour le code comme suit :
-
Dans
Program.cs, indiquez le nom du Région AWS compartiment et son emplacement. L'exemple crée un objet dans ce compartiment.
-
-
Exécutez le code.
-
Pour vérifier que l'objet a été créé, copiez l'URL présignée créée par le programme, puis collez-la dans une fenêtre de navigateur.