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 for .NET
Ce didacticiel utilise AWS SDK for .NET le sous Windows avec Visual Studio et. NETNoyau. Le didacticiel explique comment utiliser le SDK pour répertorier les compartiments Amazon S3 que vous possédez et éventuellement créer un compartiment.
Vous allez exécuter ce didacticiel sous Windows à l'aide de Visual Studio et. NETNoyau. Pour d'autres méthodes de configuration de votre environnement de développement, consultezInstallez et configurez votre chaîne d'outils.
Nécessaire pour le développement sous Windows avec Visual Studio et. NETNoyau :
-
Microsoft. NETCore 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 et configuré SDK l'authentification.
Étapes
Création du projet
-
Ouvrez Visual Studio et créez un nouveau projet qui utilise la version C# du modèle d'application console, c'est-à-dire avec la description suivante : «... pour créer une application de ligne de commande pouvant être exécutée sur. NET... ». Appelez le projet
S3CreateAndList
.Note
Ne choisissez pas le. NETVersion framework du modèle d'application de console ou, si c'est le cas, assurez-vous de l'utiliser. NETFramework 4.7.2 ou version ultérieure.
-
Une fois le projet nouvellement créé chargé, choisissez Tools, NuGetPackage Manager, Manage NuGet Packages for Solution.
-
Recherchez les NuGet packages suivants et installez-les dans le projet :
AWSSDK.S3
AWSSDK.SecurityToken
,AWSSDK.SSO
, etAWSSDK.SSOOIDC
Ce processus installe les NuGet packages à partir du gestionnaire de NuGet packages
. 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à. -
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
-
Dans le
S3CreateAndList
projet, recherchez et ouvrezProgram.cs
dans leIDE. -
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; } } }
-
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# 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
-
Exécutez l'application sans arguments de ligne de commande. Faites-le soit dans l'invite de commande (si vous en avez ouvert une auparavant), soit à partir duIDE.
-
Examinez le résultat pour connaître le nombre de compartiments Amazon S3 que vous possédez, le cas échéant, et leurs noms.
-
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 des compartiments du guide de l'utilisateur Amazon S3.
-
Exécutez à nouveau l'application, en fournissant cette fois le nom du compartiment.
Dans la ligne de commande, remplacez
amzn-s3-demo-bucket
dans la commande suivante avec le nom du bucket que vous avez choisi.S3CreateAndList
amzn-s3-demo-bucket
Ou, si vous exécutez l'application dans leIDE, choisissez Project, S3 CreateAndList Properties, Debug et entrez le nom du bucket à cet endroit.
-
Examinez le résultat pour voir le nouveau compartiment créé.
Nettoyage
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/
. -
Si vous ne voulez pas garder votre. NETprojet, supprimez le
S3CreateAndList
dossier de votre environnement de développement.
Étapes suivantes
Retournez au menu de visite rapide ou allez directement à la fin de cette visite rapide.