访问应用程序中的凭证和配置文件 - 适用于 .NET 的 AWS 开发工具包
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

访问应用程序中的凭证和配置文件

使用凭证的首选方法是允许 适用于 .NET 的 AWS 开发工具包 以查找和检索它们,如 凭证和配置文件解析.

但是,您还可以配置应用程序以主动检索配置文件和凭证,然后在创建 AWS 服务客户端。

要主动检索配置文件和凭证,请使用 亚马逊.运行时.凭证管理 命名空间。

以下部分提供了这些班级的示例。

类示例 CredentialProfileStoreChain

您可以从以下位置获取凭证或配置文件: CredentialProfileStoreChain 使用 TryGetAWSCredentialsTryGetProfile 方法。的 ProfilesLocation 类的属性决定了方法的行为,如下所示:

  • 如果 ProfilesLocation 为Null或空,请搜索 开发工具包商店 如果平台支持,然后搜索共享的 AWS 凭证文件位于默认位置。

  • 如果 ProfilesLocation 属性包含值,请搜索属性中指定的凭证文件。

从获取凭证 开发工具包商店 或共享的 AWS 凭证文件

此示例向您展示如何使用 CredentialProfileStoreChain 然后使用凭证创建 AmazonS3Client 对象。凭证可以来自 开发工具包商店 或从共享的 AWS 默认位置的凭证文件。

此示例还使用 亚马逊.运行时.AWSC凭证 类。

var chain = new CredentialProfileStoreChain(); AWSCredentials awsCredentials; if (chain.TryGetAWSCredentials("some_profile", out awsCredentials)) { // Use awsCredentials to create an Amazon S3 service client using (var client = new AmazonS3Client(awsCredentials)) { var response = await client.ListBucketsAsync(); Console.WriteLine($"Number of buckets: {response.Buckets.Count}"); } }

从获取配置文件 开发工具包商店 或共享的 AWS 凭证文件

此示例向您展示如何通过使用 CredentialProfileStoreChain 类。凭证可以来自 开发工具包商店 或从共享的 AWS 默认位置的凭证文件。

此示例还使用 CredentialProfile 类。

var chain = new CredentialProfileStoreChain(); CredentialProfile basicProfile; if (chain.TryGetProfile("basic_profile", out basicProfile)) { // Use basicProfile }

从自定义凭据文件获取凭据

此示例向您展示如何使用 CredentialProfileStoreChain 类。凭证来自使用 AWS 凭证文件格式,但位于其他位置。

此示例还使用 亚马逊.运行时.AWSC凭证 类。

var chain = new CredentialProfileStoreChain("c:\\Users\\sdkuser\\customCredentialsFile.ini"); AWSCredentials awsCredentials; if (chain.TryGetAWSCredentials("basic_profile", out awsCredentials)) { // Use awsCredentials to create an AWS service client }

类示例 SharedCredentialsFile 和 AWSCredentialsFactory

创建 AmazonS3Client 通过使用 SharedCredentialsFile 类

此示例向您展示如何在共享的 AWS 凭证文件,创建 AWS 凭证,然后使用凭证创建 AmazonS3Client 对象。该示例使用 SharedCredentialsFile 类。

此示例还使用 CredentialProfile亚马逊.运行时.AWSC凭证 类。

CredentialProfile basicProfile; AWSCredentials awsCredentials; var sharedFile = new SharedCredentialsFile(); if (sharedFile.TryGetProfile("basic_profile", out basicProfile) && AWSCredentialsFactory.TryGetAWSCredentials(basicProfile, sharedFile, out awsCredentials)) { // use awsCredentials to create an Amazon S3 service client using (var client = new AmazonS3Client(awsCredentials, basicProfile.Region)) { var response = await client.ListBucketsAsync(); Console.WriteLine($"Number of buckets: {response.Buckets.Count}"); } }
注意

NetSDKCredentialsFile 课程的使用方式完全相同,除非您会实例化新的 NetSDKCredentialsFile 对象而不是 SharedCredentialsFile 对象。