【发布时间】:2017-05-05 22:53:01
【问题描述】:
在开始之前,我已经阅读了与同一问题相关的SO post。但是,该帖子中的 SDK 版本是旧的。 根据AWS nugetpage,有新版本 3 可用,每个服务都有单独的包。
适用于 .NET 的 AWS 开发工具包的新版本 3 使用单独的包 每个服务。例如 Amazon S3 在 AWSSDK.S3 包中, Amazon SQS 位于 AWSSDK.SQS 中,Amazon DynamnoDB 位于 AWSSDK.DynamoDBv2。
所以我已经从 nuget 安装了 AWSSDK.S3 包,它还安装了依赖项 AWSSDK.Core。
我使用的bucket是使用IP限制的,所以我执行代码的机器可以完全访问bucket。
下面是我将文件上传到 S3 的代码。但是,当我使用new AmazonS3Client(RegionEndpoint.USWest2); 创建AmazonS3Client 的新实例时,我遇到了异常
再次注意,我在创建实例时遇到异常,而不是在上传文件时。
var s3Client = new AmazonS3Client(RegionEndpoint.USWest2); //exception at this line
var bucketName = "mybucketname";
PutObjectRequest putRequest1 = new PutObjectRequest
{
BucketName = bucketName,
Key = "MyKey/test1.pdf",
FilePath = filePath
};
PutObjectResponse response1 = s3Client.PutObject(putRequest1);
但是我得到了异常
[15:57:43 ERR] 未处理的异常 Amazon.Runtime.AmazonServiceException:找不到凭据
异常 1 之 5:System.InvalidOperationException:The 应用程序的 app.config/web.config 文件不包含 凭证信息在 Amazon.Runtime.AppConfigAWSCredentials..ctor() 在 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs:line 977 在 Amazon.Runtime.FallbackCredentialsFactory.c.b__6_0() 在 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs:line 2098 在 Amazon.Runtime.FallbackCredentialsFactory.GetCredentials(布尔 fallbackToAnonymous) 在 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs
异常 2 of 5:System.ArgumentException:App.config 没有 包含凭据信息。添加 AWSAccessKey 和 AWSSecretKey 属性或 AWSProfileName 属性。在 Amazon.Runtime.StoredProfileAWSCredentials..ctor(字符串 profileName, 字符串配置文件位置)在 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCreden 在 Amazon.Runtime.FallbackCredentialsFactory.c.b__6_1() 中 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs:line 2099 在 Amazon.Runtime.FallbackCredentialsFactory.GetCredentials(布尔 fallbackToAnonymous) 在 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs
异常 3 of 5: System.ArgumentException: Profile '' is not found 或无法从 SDK 凭据存储中加载。验证 个人资料名称和数据正确。在 Amazon.Runtime.StoredProfileFederatedCredentials..ctor(字符串 profileName, String profilesLocation, WebProxy proxySettings) 在 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src 在 Amazon.Runtime.FallbackCredentialsFactory.c.b__6_2() 在 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs:line 2101 在 Amazon.Runtime.FallbackCredentialsFactory.GetCredentials(布尔 fallbackToAnonymous) 在 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs
异常 4 of 5:System.InvalidOperationException:环境 变量 AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY/AWS_SESSION_TOKEN 未使用 AWS 凭证设置。在 Amazon.Runtime.EnvironmentVariablesAWSCredentials.FetchAWSCredentials() 在 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs:line 856 在 Amazon.Runtime.EnvironmentVariablesAWSCredentials..ctor() 中 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs:line 836 在 Amazon.Runtime.FallbackCredentialsFactory.c.b__6_3() 在 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs:line 2102 在 Amazon.Runtime.FallbackCredentialsFactory.GetCredentials(布尔 fallbackToAnonymous) 在 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs
异常 5(共 5 个):Amazon.Runtime.AmazonServiceException:无法 到达凭证服务器 Amazon.Runtime.URIBasedRefreshingCredentialHelper.GetContents(Uri uri) 在 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs:line 1194 在 Amazon.Runtime.InstanceProfileAWSCredentials.d__10.MoveNext() 在 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs:line 在 Amazon.Runtime.InstanceProfileAWSCredentials.GetFirstRole() 中 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs:line 1422 在 Amazon.Runtime.FallbackCredentialsFactory.ECSEC2CredentialsWrapper() 在 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs:line 2129 在 Amazon.Runtime.FallbackCredentialsFactory.GetCredentials(布尔 fallbackToAnonymous) 在 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs
在 Amazon.Runtime.FallbackCredentialsFactory.GetCredentials(Boolean fallbackToAnonymous) 在 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs 在 Amazon.Runtime.FallbackCredentialsFactory.GetCredentials() 中 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Core\Amazon.Runtime\AWSCredentials.cs:line 2136 在 Amazon.S3.AmazonS3Client..ctor(RegionEndpoint 区域)中 E:\JenkinsWorkspaces\v3-stage-release\AWSDotNetPublic\sdk\src\Services\S3\Generated_bcl45\AmazonS3Client.cs:line 80 在 Utility.Program.Dowork() 中 C:\repos\poc\Utility\Utility\Program.cs:第 133 行 Utility.Program.Main(String[] args) 在 C:\repos\poc\Utility\Utility\Program.cs:第 23 行
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-sdk