

La version 4 (V4) du AWS SDK pour .NET est sortie \$1

Pour plus d'informations sur les modifications majeures et la migration de vos applications, consultez la [rubrique relative à la migration](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html).

 [https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)

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.

# Application Windows simple utilisant le AWS SDK pour .NET
<a name="quick-start-s3-1-winvs"></a>

Ce didacticiel utilise AWS SDK pour .NET Windows avec Visual Studio et .NET Core. Le didacticiel explique comment utiliser le SDK pour répertorier les [compartiments Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/) que vous possédez et éventuellement créer un compartiment.

Vous exécuterez ce didacticiel sous Windows avec Visual Studio et .NET Core. Pour d'autres méthodes de configuration de votre environnement de développement, consultez[Installation et configuration de votre chaîne d'outils pour AWS SDK pour .NET](net-dg-dev-env.md).

**Nécessaire pour le développement sous Windows avec Visual Studio et .NET Core :**
+ [Microsoft Visual Studio](https://visualstudio.microsoft.com/vs/)
+ Microsoft .NET Core 2.1, 3.1 ou version ultérieure

  Ceci est généralement inclus par défaut lors de l'installation d'une version récente de Visual Studio.

**Note**  
Avant d'utiliser ces didacticiels, vous devez d'abord avoir [installé votre chaîne d'outils](net-dg-dev-env.md) et [configuré l'authentification du SDK](creds-idc.md).

## Étapes
<a name="s3-1-winvs-steps"></a>
+ [Création du projet](#s3-1-winvs-create-project)
+ [Créer le code](#s3-1-winvs-code)
+ [Exécutez l'application](#s3-1-winvs-run)
+ [Nettoyage](#s3-1-winvs-clean-up)

## Création du projet
<a name="s3-1-winvs-create-project"></a>

1. Ouvrez Visual Studio et créez un nouveau projet qui utilise la version C\$1 du modèle d'**application console**, c'est-à-dire avec la description suivante : «... pour créer une application de ligne de commande pouvant s'exécuter sur .NET... ». Appelez le projet `S3CreateAndList`.
**Note**  
Ne choisissez pas la version .NET Framework du modèle d'application de console ou, si c'est le cas, veillez à utiliser .NET Framework 4.7.2 ou version ultérieure.

1. Une fois le projet nouvellement créé chargé, choisissez **Tools**, **NuGetPackage Manager**, **Manage NuGet Packages for Solution**.

1. Recherchez les NuGet packages suivants et installez-les dans le projet : `AWSSDK.S3``AWSSDK.SecurityToken`,`AWSSDK.SSO`, et `AWSSDK.SSOOIDC`

   Ce processus installe les NuGet packages à partir du [gestionnaire de NuGet packages](https://www.nuget.org/profiles/awsdotnet). Comme nous savons exactement de quels NuGet packages nous avons besoin pour ce didacticiel, nous pouvons effectuer cette étape dès maintenant. Il est également courant que les packages requis soient connus au cours du développement. Dans ce cas, appliquez un processus similaire pour les installer à ce moment-là.

1. Si vous avez l'intention d'exécuter l'application à partir de l'invite de commande, ouvrez une invite de commande maintenant et accédez au dossier qui contiendra le résultat de la compilation. C'est généralement quelque chose comme ça`S3CreateAndList\S3CreateAndList\bin\Debug\net6.0`, mais cela dépend de votre environnement.

## Créer le code
<a name="s3-1-winvs-code"></a>

1. Dans le projet `S3CreateAndList`, recherchez et ouvrez `Program.cs` dans l'IDE.

1. Remplacez le contenu par le code suivant et enregistrez le fichier.

   ```
   using System;
   using System.Threading.Tasks;
   
   // NuGet packages: AWSSDK.S3, AWSSDK.SecurityToken, AWSSDK.SSO, AWSSDK.SSOOIDC
   using Amazon.Runtime;
   using Amazon.Runtime.CredentialManagement;
   using Amazon.S3;
   using Amazon.S3.Model;
   using Amazon.SecurityToken;
   using Amazon.SecurityToken.Model;
   
   namespace S3CreateAndList
   {
       class Program
       {
           // This code is part of the quick tour in the developer guide.
           // See https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/quick-start.html
           // for complete steps.
           // Requirements:
           // - An SSO profile in the SSO user's shared config file with sufficient privileges for
   		//   STS and S3 buckets.
           // - An active SSO Token.
           //    If an active SSO token isn't available, the SSO user should do the following:
           //    In a terminal, the SSO user must call "aws sso login".
   
           // Class members.
           static async Task Main(string[] args)
           {
               // Get SSO credentials from the information in the shared config file.
               // For this tutorial, the information is in the [default] profile.
               var ssoCreds = LoadSsoCredentials("default");
   
               // Display the caller's identity.
               var ssoProfileClient = new AmazonSecurityTokenServiceClient(ssoCreds);
               Console.WriteLine($"\nSSO Profile:\n {await ssoProfileClient.GetCallerIdentityArn()}");
   
               // Create the S3 client is by using the SSO credentials obtained earlier.
               var s3Client = new AmazonS3Client(ssoCreds);
   
               // Parse the command line arguments for the bucket name.
               if (GetBucketName(args, out String bucketName))
               {
                   // If a bucket name was supplied, create the bucket.
                   // Call the API method directly
                   try
                   {
                       Console.WriteLine($"\nCreating bucket {bucketName}...");
                       var createResponse = await s3Client.PutBucketAsync(bucketName);
                       Console.WriteLine($"Result: {createResponse.HttpStatusCode.ToString()}");
                   }
                   catch (Exception e)
                   {
                       Console.WriteLine("Caught exception when creating a bucket:");
                       Console.WriteLine(e.Message);
                   }
               }
   
               // Display a list of the account's S3 buckets.
               Console.WriteLine("\nGetting a list of your buckets...");
               var listResponse = await s3Client.ListBucketsAsync();
               Console.WriteLine($"Number of buckets: {listResponse.Buckets.Count}");
               foreach (S3Bucket b in listResponse.Buckets)
               {
                   Console.WriteLine(b.BucketName);
               }
               Console.WriteLine();
           }
   
           // 
           // Method to parse the command line.
           private static Boolean GetBucketName(string[] args, out String bucketName)
           {
               Boolean retval = false;
               bucketName = String.Empty;
               if (args.Length == 0)
               {
                   Console.WriteLine("\nNo arguments specified. Will simply list your Amazon S3 buckets." +
                     "\nIf you wish to create a bucket, supply a valid, globally unique bucket name.");
                   bucketName = String.Empty;
                   retval = false;
               }
               else if (args.Length == 1)
               {
                   bucketName = args[0];
                   retval = true;
               }
               else
               {
                   Console.WriteLine("\nToo many arguments specified." +
                     "\n\ndotnet_tutorials - A utility to list your Amazon S3 buckets and optionally create a new one." +
                     "\n\nUsage: S3CreateAndList [bucket_name]" +
                     "\n - bucket_name: A valid, globally unique bucket name." +
                     "\n - If bucket_name isn't supplied, this utility simply lists your buckets.");
                   Environment.Exit(1);
               }
               return retval;
           }
   
           //
           // Method to get SSO credentials from the information in the shared config file.
           static AWSCredentials LoadSsoCredentials(string profile)
           {
               var chain = new CredentialProfileStoreChain();
               if (!chain.TryGetAWSCredentials(profile, out var credentials))
                   throw new Exception($"Failed to find the {profile} profile");
               return credentials;
           }
       }
   
       // Class to read the caller's identity.
       public static class Extensions
       {
           public static async Task<string> GetCallerIdentityArn(this IAmazonSecurityTokenService stsClient)
           {
               var response = await stsClient.GetCallerIdentityAsync(new GetCallerIdentityRequest());
               return response.Arn;
           }
       }
   }
   ```

1. Générer l'application
**Note**  
Si vous utilisez une ancienne version de Visual Studio, il est possible que vous obteniez une erreur de compilation similaire à la suivante :  
« La fonctionnalité « async main » n'est pas disponible dans C\$1 7.0. Veuillez utiliser la version linguistique 7.1 ou supérieure. »  
Si cette erreur s'affiche, configurez votre projet pour utiliser une version ultérieure de la langue. Cela se fait généralement dans les propriétés du projet, **Build**, **Advanced**.

## Exécutez l'application
<a name="s3-1-winvs-run"></a>

1. Exécutez l'application sans arguments de ligne de commande. Faites-le soit dans l'invite de commande (si vous en avez ouvert une plus tôt), soit depuis l'IDE.

1. Examinez le résultat pour connaître le nombre de compartiments Amazon S3 que vous possédez, le cas échéant, ainsi que leurs noms.

1. Choisissez un nom pour un nouveau compartiment Amazon S3. Utilisez « dotnet-quicktour-s 3-1-winvs- » comme base et ajoutez-y quelque chose d'unique, comme un GUID ou votre nom. Assurez-vous de suivre les règles relatives aux noms de compartiments, telles que décrites dans la section [Règles de dénomination](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules) des compartiments du [guide de l'utilisateur Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/).

1. Exécutez à nouveau l'application, en fournissant cette fois le nom du compartiment.

   Dans la ligne de commande, remplacez *amzn-s3-demo-bucket* la commande suivante par le nom du bucket que vous avez choisi.

   ```
   S3CreateAndList amzn-s3-demo-bucket
   ```

   Ou, si vous exécutez l'application dans l'IDE, choisissez **Project**, **S3 CreateAndList Properties**, **Debug** et entrez le nom du bucket à cet endroit.

1. Examinez le résultat pour voir le nouveau compartiment créé.

## Nettoyage
<a name="s3-1-winvs-clean-up"></a>

Au cours de ce didacticiel, vous avez créé des ressources que vous pouvez choisir de nettoyer pour le moment.
+ Si vous ne souhaitez pas conserver le compartiment créé par l'application lors d'une étape précédente, supprimez-le à l'aide de la console Amazon S3 à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).
+ Si vous ne souhaitez pas conserver votre projet .NET, supprimez le dossier `S3CreateAndList` de votre environnement de développement.

## Étapes suivantes
<a name="s3-1-winvs-next"></a>

Retournez au [menu de visite rapide](quick-start.md) ou allez directement à la [fin de cette visite rapide](quick-start-next-steps.md).