私が始める前に、私はすでに同じ質問に関連してSO postを読みました。しかし、そのポストのSDKのバージョンは古いです。 AWS nugetpageによれば、新しいバージョン3が利用可能であり、各サービスごとに別々のパッケージがあります。アクセスキーと秘密鍵を使用せずにAWS S3にファイルをアップロードする方法
新しいバージョン3のAWS SDK for .NETでは、サービスごとに別々のパッケージ( )が使用されています。たとえば、Amazon S3はAWSSDK.S3パッケージにあり、 Amazon SQSはAWSSDK.SQSにあり、Amazon DynamnoDBは AWSSDK.DynamoDBv2にあります。
したがって、AWSSDK.Core
もインストールするnugetからAWSSDK.S3
パッケージをインストールしました。 使用しているバケットimはIPを使って制限されているので、im実行コードがバケットに完全にアクセスできるマシンです。
以下は、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取得しかし:System.InvalidOperationExceptionが:資格情報5の
例外1を見つけることができません。 : アプリケーションのapp.config/web.configファイルに の資格情報が含まれていませんでした Amazon.Runtime.AppConfigAWSCredentials..ctor() E:\ J enkinsWorkspaces \ v3-stage-release \ AWSDotNetPublic \ sdk \ src \ Core \ Amazon.Runtime \ AWSCredentials.cs:行 Amazon.Runtime.FallbackCredentialsFactory。 <> c.b__6_0() Eで:\ JenkinsWorkspaces v3の段階 - リリース\ \ AWSDotNetPublic \ SDK \ SRC \コア\ Amazon.Runtime AWSCredentials.cs \:ライン Amazon.Runtime.FallbackCredentialsFactory.GetCredentialsで(ブール Eで fallbackToAnonymous):\ JenkinsWorkspaces \ v3の段階 - リリース\ AWSDotNetPublic \ SDK \ SRC \コア\ Amazon.Runtime \ AWSCredentials.cs
例外5の2:System.ArgumentExceptionの:App.configファイルが ありません資格情報を含むAWSAccessKeyプロパティと AWSSecretKeyプロパティまたはAWSProfileNameプロパティを追加します。 Amazon.Runtimeで\ JenkinsWorkspaces \ v3の段階 - リリース\ AWSDotNetPublic \ SDK \ SRC \コア\ Amazon.Runtime \ AWSCreden : Eで Amazon.Runtime.StoredProfileAWSCredentials..ctor(文字列プロファイル名、 文字列profilesLocation)で。 FallbackCredentialsFactory。 <> c.b__6_1() Eで:\ JenkinsWorkspaces v3の段階 - リリース\ \ AWSDotNetPublic \ SDK \ SRC \コア\ Amazon.Runtime AWSCredentials.cs \:ライン Amazon.Runtime.FallbackCredentialsFactory.GetCredentialsで(ブール Eで fallbackToAnonymous):\ JenkinsWorkspaces \ v3のステージ-リリース5の\ AWSDotNetPublic \ SDK \ SRC \コア\ Amazon.Runtime \ AWSCredentials.cs
例外3:システム。ArgumentException:プロファイル ''が見つかりませんでした またはSDK資格情報ストアから読み込めませんでした。 のプロファイル名とデータが正しいことを確認します。 Eで Amazon.Runtime.StoredProfileFederatedCredentials..ctorで(文字列 プロファイル名、文字列profilesLocation、WebProxyにproxySettings): Amazon.Runtime.FallbackCredentialsFactoryで\ JenkinsWorkspaces \ v3の段階 - リリース\ AWSDotNetPublic \ SDK \ SRC。 <> c.b__6_2() Eで:\ JenkinsWorkspaces v3の段階 - リリース\ \ AWSDotNetPublic \ SDK \ SRC \コア\ Amazon.Runtime AWSCredentials.cs \:ライン Amazon.Runtime.FallbackCredentialsFactory.GetCredentialsで(ブール Eで fallbackToAnonymous):\ JenkinsWorkspaces v3の段階 - リリース\ \ AWSDotNetPublic \ SDK \ SRC \コア\ Amazon.Runtime AWSCredentials.cs
例外4 5の\:System.InvalidOperationExceptionが:環境変数 AWS_ACCESS_KEY_ID/AWS資格情報でAWS_SECRET_ACCESS_KEY/AWS_SESSION_TOKEN が設定されていませんでした。 Amazon.Runtime.EnvironmentVariablesAWSCredentials.FetchAWSCredentials() E中で:\ JenkinsWorkspaces v3の段階 - リリース\ \ AWSDotNetPublic \ SDK \ SRC \コア\ Amazon.Runtime AWSCredentials.cs \:Amazon.Runtime.EnvironmentVariablesAWSCredentialsでライン 856 ..E:¥JenkinsWorkspaces¥v3-stage-release¥AWSDotNetPublic¥sdk¥src¥Core¥Amazon.Runtime¥AWSCredentials.cs: Amazon.Runtime.FallbackCredentialsFactory内の.ctor()。 <> c.b__6_3() Eで:\ JenkinsWorkspaces v3の段階 - リリース\ \ AWSDotNetPublic \ SDK \ SRC \コア\ Amazon.Runtime AWSCredentials.cs \:ライン 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) E:¥JenkinsWorkspaces¥v3-stage-release¥AWSDotNetPublic¥sdk¥src¥Core¥Amazon.Runtライン Amazon.Runtime.InstanceProfileAWSCredentials.d__10.MoveNext(で) E で:\ JenkinsWorkspaces \ v3の段階 - リリース\ AWSDotNetPublic \ SDK \ SRC \コア\ Amazon.Runtime \ AWSCredentials IMEはAWSCredentials.csを\します。 CS:ライン EでAmazon.Runtime.InstanceProfileAWSCredentials.GetFirstRole()で:\ JenkinsWorkspaces v3の段階 - リリース\ \ AWSDotNetPublic \ SDK \ SRC \コア\ Amazon.Runtime AWSCredentials.cs \:ライン 1422アマゾン で。 Runtime.FallbackCredentialsFactory.ECSEC2CredentialsWrapper() でE:\ JenkinsWorkspaces \ v3の段階 - リリース\ AWSDotNetPublic \ SDK \ SRC \コア\ Amazon.Runtime \ AWSCredentials.cs:ライン Amazon.Runtime.FallbackCredentialsFactory.GetCrで Eでedentials(ブール fallbackToAnonymous):\ 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の場合:JenkinsWorkspaces \ v3-stage-リリース\ AWSDotNetPublic \ sdk \ src \ Core \ Amazon.Runtime \ AWSCredentials.cs:行 2136 Amazon.S3.AmazonS3Client .. E:¥JenkinsWorkspaces¥v3-stage-release¥AWSDotNetPublic¥sdk¥src¥Services¥S3¥Generated_Bcl45¥AmazonS3Client.cs: 80のUtility.Program.Dowork()の のc:\ ctor(RegionEndpoint地域)レポ\ POC \ユーティリティ\ユーティリティ\のProgram.cs: CでUtility.Program.Main(文字列[]引数)でライン133:\レポ\ POC \ユーティリティ\ユーティリティ\のProgram.cs:ライン23