在開始之前,我已閱讀與同一問題相關的SO post。然而,該帖子中的SDK版本是舊的。 根據AWS nugetpage有新的版本3是可用的,其中每個服務都有獨立的包。如何在不使用密鑰和密鑰的情況下將文件上載到AWS S3
AWS SDK for .NET的新版本3爲每個服務使用 的獨立包。例如,Amazon S3位於AWSSDK.S3程序包中, Amazon SQS位於AWSSDK.SQS中,Amazon DynamnoDB位於 AWSSDK.DynamoDBv2中。
所以我已經安裝的NuGet AWSSDK.S3
包裏面還安裝依賴AWSSDK.Core
。 使用IP的桶限制使用IP,所以即時執行代碼的機器可以完全訪問存儲桶。
下面是我上傳文件到S3的代碼。然而,即時通知當我創建AmazonS3Client
使用new AmazonS3Client(RegionEndpoint.USWest2);
再次請注意,我得到的例外情況是創建實例,而不是上傳文件時創建新的實例。
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:找不到憑據
異常的5 1信息:System.InvalidOperationException :該應用程序的 app.config/web.config文件不包含 憑據信息 Amazon.Runtime.AppConfigAWSCredentials..ctor() E:\ J enkinsWorkspaces \ v3-stage-release \ AWSDotNetPublic \ sdk \ src \ Core \ Amazon.Runtime \ AWSCredentials.cs:line 977 at Amazon.Runtime.FallbackCredentialsFactory。 <> c.b__6_0()在 E:\ JenkinsWorkspaces \ V3階段釋放\ AWSDotNetPublic \ SDK \ SRC \核心\ Amazon.Runtime \ AWSCredentials.cs:線 2098在 Amazon.Runtime.FallbackCredentialsFactory.GetCredentials(布爾 fallbackToAnonymous)在 E:\ JenkinsWorkspaces \ V3階段釋放\ AWSDotNetPublic \ SDK \ SRC \核心\ Amazon.Runtime \ AWSCredentials.cs
例外2 5的信息:System.ArgumentException:App.config中不 包含憑據信息。請添加AWSAccessKey和AWSSecretKey屬性或AWSProfileName屬性。在 Amazon.Runtime.StoredProfileAWSCredentials..ctor(字符串PROFILENAME, 字符串profilesLocation)在 E:\ JenkinsWorkspaces \ V3階段釋放\ AWSDotNetPublic \ SDK \ SRC \核心\ Amazon.Runtime \ AWSCreden 在Amazon.Runtime。 FallbackCredentialsFactory。 <> c.b__6_1()在 E:\ JenkinsWorkspaces \ V3階段釋放\ AWSDotNetPublic \ SDK \ SRC \核心\ Amazon.Runtime \ AWSCredentials.cs:線 2099在 Amazon.Runtime.FallbackCredentialsFactory.GetCredentials(布爾 fallbackToAnonymous)在 E:\ JenkinsWorkspaces \ V3階段釋放\ AWSDotNetPublic \ SDK \ SRC \核心\ Amazon.Runtime \ AWSCredentials.cs
例外3 5:系統。ArgumentException:配置文件''未找到 或無法從SDK憑證存儲區加載。驗證 配置文件名稱和數據是否正確。在 Amazon.Runtime.StoredProfileFederatedCredentials..ctor(字符串 PROFILENAME,字符串profilesLocation,WebProxy proxySettings)在 E:\ JenkinsWorkspaces \ V3階段釋放\ AWSDotNetPublic \ SDK \ SRC在 Amazon.Runtime.FallbackCredentialsFactory。 <> c.b__6_2()在 E:\ JenkinsWorkspaces \ V3階段釋放\ AWSDotNetPublic \ SDK \ SRC \核心\ Amazon.Runtime \ AWSCredentials.cs:線 2101在 Amazon.Runtime.FallbackCredentialsFactory.GetCredentials(布爾 fallbackToAnonymous)在 E:\ JenkinsWorkspaces \ V3階段釋放\ AWSDotNetPublic \ SDK \ SRC \核心\ Amazon.Runtime \ AWSCredentials.cs
異常4 5的信息:System.InvalidOperationException:環境 變量AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY/AWS_SESSION_TOKEN 未使用AWS憑證進行設置。在 Amazon.Runtime.EnvironmentVariablesAWSCredentials.FetchAWSCredentials()在 ë :\ JenkinsWorkspaces \ V3階段釋放\ AWSDotNetPublic \ SDK \ SRC \核心\ Amazon.Runtime \ AWSCredentials.cs:線 856在Amazon.Runtime.EnvironmentVariablesAWSCredentials E:\ JenkinsWorkspaces \ v3-stage-release \ AWSDotNetPublic \ sdk \ src \ Core \ Amazon.Runtime \ AWSCredentials.cs:line 836 at Amazon.Runtime.FallbackCredentialsFactory。 <> c.b__6_3()在 E:\ JenkinsWorkspaces \ V3階段釋放\ AWSDotNetPublic \ SDK \ SRC \核心\ Amazon.Runtime \ AWSCredentials.cs:線 2102在 Amazon.Runtime.FallbackCredentialsFactory.GetCredentials(布爾 fallbackToAnonymous)在 E:\ JenkinsWorkspaces \ V3階段釋放\ AWSDotNetPublic \ SDK \ SRC \核心\ Amazon.Runtime \ AWSCredentials.cs
異常5 5:Amazon.Runtime.AmazonServiceException:無法 觸及憑證服務器 Amazon.Runtime.URIBasedRefreshingCredentialHelper.GetContents(Uri uri) in E:\ JenkinsWorkspaces \ v3-stage-release \ AWSDotNetPublic \ sdk \ src \ Core \ Amazon.Runt IME \ AWSCredentials.cs:線 1194在 Amazon.Runtime.InstanceProfileAWSCredentials.d__10.MoveNext() 在 E:\ JenkinsWorkspaces \ V3階段釋放\ AWSDotNetPublic \ SDK \ SRC \核心\ Amazon.Runtime \ AWSCredentials。 CS:在Amazon.Runtime.InstanceProfileAWSCredentials.GetFirstRole()在 E行 :\ JenkinsWorkspaces \ V3階段釋放\ AWSDotNetPublic \ SDK \ SRC \核心\ Amazon.Runtime \ AWSCredentials.cs:線 1422在 亞馬遜。 Runtime.FallbackCredentialsFactory.ECSEC2CredentialsWrapper() 在 E:\ JenkinsWorkspaces \ V3階段釋放\ AWSDotNetPublic \ SDK \ SRC \核心\ Amazon.Runtime \ AWSCredentials.cs:線 2129在 Amazon.Runtime.FallbackCredentialsFactory.GetCr edentials(布爾 fallbackToAnonymous)在 E:\ JenkinsWorkspaces \ V3階段釋放\ AWSDotNetPublic \ SDK \ SRC \核心\ Amazon.Runtime \ AWSCredentials.cs
在Amazon.Runtime.FallbackCredentialsFactory.GetCredentials(布爾 fallbackToAnonymous ) E:\ JenkinsWorkspaces \ v3-stage-release \ AWSDotNetPublic \ sdk \ src \ Core \ Amazon.Runtime \ AWSCredentials.cs at Amazon.Runtime.FallbackCredentialsFactory.GetCredentials() E:\ JenkinsWorkspaces \ v3-stage-發行\ AWSDotNetPublic \ sdk \ src \ Core \ Amazon.Runtime \ AWSCredentials.cs:行 2136 at Amazon.S3.AmazonS3Client ..c:\ JenkinsWorkspaces \ v3-stage-release \ AWSDotNetPublic \ sdk \ src \ Services \ S3 \ Generated_bcl45 \ AmazonS3Client.cs: 在Utility.Program.Dowork()中爲 C:\ ctor(RegionEndpoint region) 回購\ POC \實用\實用\的Program.cs:線133在 Utility.Program.Main(字串[] args)在 C:\回購\ POC \實用\實用\的Program.cs:行23