Aplikasi berbasis Windows sederhana menggunakan AWS SDK for .NET - AWS SDK for .NET

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Aplikasi berbasis Windows sederhana menggunakan AWS SDK for .NET

Tutorial ini menggunakan AWS SDK for .NET pada Windows dengan Visual Studio dan. NETInti. Tutorial ini menunjukkan cara menggunakan bucket Amazon S3 yang Anda miliki dan secara opsional membuat bucket. SDK

Anda akan melakukan tutorial ini pada Windows menggunakan Visual Studio dan. NETInti. Untuk cara lain untuk mengonfigurasi lingkungan pengembangan Anda, lihatInstal dan konfigurasikan toolchain Anda.

Diperlukan untuk pengembangan pada Windows dengan Visual Studio dan. NETInti:

  • Microsoft. NETCore 2.1, 3.1 atau yang lebih baru

    Ini biasanya disertakan secara default saat menginstal versi terbaru Visual Studio.

catatan

Sebelum Anda menggunakan tutorial ini, Anda harus terlebih dahulu menginstal toolchain Anda dan mengkonfigurasi SDK otentikasi.

Langkah-langkah

Buat proyek

  1. Buka Visual Studio dan buat proyek baru yang menggunakan versi C # dari template Aplikasi Konsol; yaitu, dengan deskripsi: “... untuk membuat aplikasi baris perintah yang dapat dijalankan. NET...”. Beri nama proyekS3CreateAndList.

    catatan

    Jangan pilih. NETVersi kerangka template aplikasi konsol, atau, jika Anda melakukannya, pastikan untuk menggunakannya. NETFramework 4.7.2 atau yang lebih baru.

  2. Dengan proyek yang baru dibuat dimuat, pilih Tools, NuGetPackage Manager, Manage NuGet Packages for Solution.

  3. Jelajahi NuGet paket-paket berikut dan instal ke dalam proyek:AWSSDK.S3,AWSSDK.SecurityToken,AWSSDK.SSO, dan AWSSDK.SSOOIDC

    Proses ini menginstal NuGet paket dari manajer NuGet paket. Karena kita tahu persis NuGet paket apa yang kita butuhkan untuk tutorial ini, kita dapat melakukan langkah ini sekarang. Ini juga umum bahwa paket yang diperlukan diketahui selama pengembangan. Ketika ini terjadi, ikuti proses serupa untuk menginstalnya pada saat itu.

  4. Jika Anda bermaksud menjalankan aplikasi dari command prompt, buka command prompt sekarang dan navigasikan ke folder yang akan berisi output build. Ini biasanya sesuatu sepertiS3CreateAndList\S3CreateAndList\bin\Debug\net6.0, tetapi akan tergantung pada lingkungan Anda.

Buat kodenya

  1. Dalam S3CreateAndList proyek, temukan dan buka Program.cs diIDE.

  2. Ganti konten dengan kode berikut dan simpan file.

    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; } } }
  3. Bangun aplikasi.

    catatan

    Jika Anda menggunakan versi Visual Studio yang lebih lama, Anda mungkin mendapatkan error build yang mirip dengan berikut ini:

    “Fitur 'async main' tidak tersedia di C # 7.0. Silakan gunakan bahasa versi 7.1 atau yang lebih besar.

    Jika Anda mendapatkan kesalahan ini, siapkan proyek Anda untuk menggunakan versi bahasa yang lebih baru. Ini biasanya dilakukan di properti proyek, Build, Advanced.

Jalankan aplikasi

  1. Jalankan aplikasi tanpa argumen baris perintah. Lakukan ini baik di command prompt (jika Anda membukanya sebelumnya) atau dariIDE.

  2. Periksa output untuk melihat jumlah ember Amazon S3 yang Anda miliki, jika ada, dan namanya.

  3. Pilih nama untuk ember Amazon S3 baru. Gunakan "dotnet-quicktour-s3-1-winvs-” sebagai basis dan tambahkan sesuatu yang unik ke dalamnya, seperti a GUID atau nama Anda. Pastikan untuk mengikuti aturan untuk nama bucket, seperti yang dijelaskan dalam Aturan untuk Penamaan Bucket di Panduan Pengguna Amazon S3.

  4. Jalankan aplikasi lagi, kali ini memasok nama bucket.

    Di baris perintah, ganti amzn-s3-demo-bucket dalam perintah berikut dengan nama ember yang Anda pilih.

    S3CreateAndList amzn-s3-demo-bucket

    Atau, jika Anda menjalankan aplikasi diIDE, pilih Project, S3 CreateAndList Properties, Debug dan masukkan nama bucket di sana.

  5. Periksa output untuk melihat bucket baru yang telah dibuat.

Pembersihan

Saat melakukan tutorial ini, Anda membuat beberapa sumber daya yang dapat Anda pilih untuk dibersihkan saat ini.

  • Jika Anda tidak ingin menyimpan bucket yang dibuat aplikasi pada langkah sebelumnya, hapus dengan menggunakan konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  • Jika Anda tidak ingin menyimpannya. NETproyek, hapus S3CreateAndList folder dari lingkungan pengembangan Anda.

Ke mana harus pergi selanjutnya

Kembali ke menu tur cepat atau langsung ke akhir tur singkat ini.