使用Amazon SDK for .NET的简单跨平台应用程序 - Amazon SDK for .NET
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

是否要将 .NET 应用程序部署到Amazon通过几个简单点击即可? 尝试我们的新.NET CLI 工具为了简化部署体验!阅读我们的博客帖子然后提交反馈GitHub

有关更多信息,请参阅部署工具

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用Amazon SDK for .NET的简单跨平台应用程序

本教程使用Amazon SDK for .NET以及适用于跨平台开发的 .NET Core。本教程介绍了如何使用开发工具包列出Amazon S3 存储桶你拥有的,也可以选择创建一个存储桶。

Steps

本教程的设置

本节介绍完成本教程所需的最低设置。您不应将此视为完整设置。为此,请参阅设置设置Amazon SDK for .NET环境

注意

如果已通过其他教程或现有配置完成以下任意步骤,请跳过这些步骤。

创建Amazon账户,请参阅如何创建并激活新的 Amazon Web Services 账户?

要完成这些教程,您需要创建Amazon Identity and Access Management(IAM) 用户并获取该用户的凭证。拥有这些凭证后,您可以在开发环境中向开发工具包提供这些凭证。方法如下。

创建和使用凭证

  1. 登录 Amazon Web Services Management Console,打开 IAM 控制台 https://console.aws.amazon.com/iam/

  2. 选择 Users,然后选择 Add user

  3. 提供用户名称。在本教程中,我们将使用 Dotnet-Tutorial-User

  4. UNDERSelectAmazon访问类型选择编程访问选择,然后选择后续:Permissions (下一步:权限)

  5. 选择直接附加现有策略

  6. In搜索输入s3选择,然后选择AmazonS3FullAccess.

  7. 选择 Next:标签后续:审核, 和创建用户.

  8. 记录 Dotnet-Tutorial-User 的凭证。要完成此操作,您可以下载 .csv 文件,或者复制并粘贴 Access key ID (访问密钥 ID)Secret access key (秘密访问密钥)

    警告

    使用适当的安全措施来确保这些凭证的安全和轮换。

  9. 创建或打开共享 Amazon 凭证文件。这个文件是~/.aws/credentials在 Linux 和 macOS 系统上,%USERPROFILE%\.aws\credentials在 Windows 上。

  10. 将以下文本添加到共享 Amazon 凭证文件中,但将示例 ID 和示例密钥替换为之前获取的内容。请记住保存文件。

    [dotnet-tutorials] aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

上述过程是用于身份验证和授权的几种可能方法中最简单的过程。有关完整信息,请参阅配置Amazon凭证.

您将使用跨平台工具(例如 .NET 命令行界面 (CLI))完成本教程。有关配置开发环境的其他方法,请参阅安装和配置您的工具链.

对于 Windows、Linux 或 macOS 上的跨平台 .NET 开发,需要:

  • Microsoft .NET Core 开发工具包,版本 2.1、3.1 或更高版本,其中包括 .NET 命令行界面 (CLI) (dotnet) 和 .NET Core 运行时。

创建项目

  1. 打开命令提示符或终端。查找或创建可以在其中创建 .NET 项目的操作系统文件夹。

  2. 在该文件夹中,运行以下命令以创建 .NET 项目。

    dotnet new console --name S3CreateAndList
  3. 转到新创建的 S3CreateAndList 文件夹并运行以下命令。

    dotnet add package AWSSDK.S3

    前面的命令会安装AWSSDK.S3来自 NuGet 包NuGet 软件包管理器. 由于我们确切地知道在本教程中所需的 NuGet 软件包,因此现在可以执行这一步。在开发过程中,知道所需的软件包也很常见。出现这种情况时,可以运行类似的命令。

  4. 将以下临时环境变量添加到环境中。

    Linux 或 macOS

    export AWS_PROFILE='dotnet-tutorials' export AWS_REGION='us-west-2'

    Windows

    set AWS_PROFILE=dotnet-tutorials set AWS_REGION=us-west-2

创建代码

  1. S3CreateAndList 文件夹中,查找并在代码编辑器中打开 Program.cs

  2. 用以下代码替换内容并保存文件。

    using System; using System.Threading.Tasks; // To interact with Amazon S3. using Amazon.S3; using Amazon.S3.Model; namespace S3CreateAndList { class Program { // Main method static async Task Main(string[] args) { // Before running this app: // - Credentials must be specified in an AWS profile. If you use a profile other than // the [default] profile, also set the AWS_PROFILE environment variable. // - An AWS Region must be specified either in the [default] profile // or by setting the AWS_REGION environment variable. // Create an S3 client object. var s3Client = new AmazonS3Client(); // 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); } } // List the buckets owned by the user. // Call a class method that calls the API method. Console.WriteLine("\nGetting a list of your buckets..."); var listResponse = await MyListBucketsAsync(s3Client); Console.WriteLine($"Number of buckets: {listResponse.Buckets.Count}"); foreach(S3Bucket b in listResponse.Buckets) { Console.WriteLine(b.BucketName); } } // // 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; } // // Async method to get a list of Amazon S3 buckets. private static async Task<ListBucketsResponse> MyListBucketsAsync(IAmazonS3 s3Client) { return await s3Client.ListBucketsAsync(); } } }

运行应用程序

  1. 运行以下 命令。

    dotnet run
  2. 检查输出以查看您拥有的 Amazon S3 存储桶数(如果有)及其名称。

  3. 为新的 Amazon S3 存储桶选择名称。以 “dotnet-quickstart-s3-1-cross-” 为基础,并添加独特的东西,如 GUID 或您的名字。请务必遵循存储桶名称的规则,如中所述存储桶命名规则中的Amazon Simple Storage Service 用户指南.

  4. 运行以下命令,将 BUCKET-NAME 替换为您选择的存储桶的名称。

    dotnet run BUCKET-NAME
  5. 检查输出以查看创建的新存储桶。

清除

执行本教程时,您创建了一些可选择在此时清理的资源。

  • 如果您不想保留应用程序在之前步骤中创建的存储桶,请使用 Amazon S3 控制台 () 将其删除。https://console.aws.amazon.com/s3/.

  • 如果您不想保留在本主题前面的教程设置过程中创建的用户,请使用 IAM 控制台 () 删除它。https://console.aws.amazon.com/iam/home#/users.

    如果您确实选择删除该用户,还应删除dotnet-tutorials您在共享中创建的个人资料Amazon凭证文件。您在本主题前面的教程设置过程中创建了此配置文件。

  • 如果您不想保留您的 .NET 项目,请从开发环境中删除 S3CreateAndList 文件夹。

后续工作

返回快速入门菜单或直接转到此快速入门的末尾