AWS SDK for .NET v3 の S3 アクセスで利用する主要クラス

投稿: 2021年09月30日
タグ: 
  クラウド  Windows  技術メモ
  • Amazon.S3.AmazonS3Client クラスで接続を確立し、S3 API に応じた各メソッド実行で操作
  • 各API に Request/Response 用クラスが定義されている
  • リージョンごとに AmazonS3Client が必要。SDK では対応してくれない
  • AmazonS3Client

    new AmazonS3Client() で default プロファイルを使用してオブジェクト生成。
    リージョンごとの生成が必要。

    異なるリージョンのオブジェクトへの操作を行うと「PermanentRedirect」のエラーが返ってくる
    画像_2021-09-30.jpg

    List of Error Codes
    https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeListopen_in_new

    new AmazonS3Client([[RegionEndpoint クラス]]) でリージョン指定

    API ドキュメント
    https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Client.htmlopen_in_new

    S3Object (Amazon.S3.Model.S3Object)

    プロパティ

  • BucketName
  • ETag
  • Key
  • LastModified
  • Owner
  • Size
  • StorageClass

  • API ドキュメント
    https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Object.htmlopen_in_new

    S3Bucket (Amazon.S3.Model.S3Bucket)

    プロパティ

  • BucketName
  • CreationDate

  • API ドキュメント
    https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Bucket.htmlopen_in_new

    S3 API に対応する AmazonS3Client のメソッドを実行

    オブジェクトのリスト取得 / ListObjectV2 ⇒ AmazonS3Client.ListObjectsV2Async
    https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/MS3ListObjectsV2AsyncListObjectsV2RequestCancellationToken.htmlopen_in_new

    個別オブジェクトの取得 / GetObject ⇒ AmazonS3Client.GetObjecthttps://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/MS3GetObjectGetObjectRequest.htmlopen_in_new


    各メソッドに対応する Request/Response クラスを使用して APIリクエスト/レスポンスを行う

    C#
    AmazonS3Client client = new AmazonS3Client(); ListObjectsV2Request request = new ListObjectsV2Request { BucketName = bucketName, Prefix = prefix }; ListObjectsV2Response response = await client.ListObjectsV2Async(request);