【AWS】LambdaでS3オブジェクト一覧を取得してみた【C#】
こんにちは!nomurabbitです。
今回は、S3バケットのオブジェクト一覧を
C#のLambdaで取得してみます。
S3操作の入門編だね!
ソースコード
今回はAWSSDK.S3が必要なので、
nugetでパッケージを追加します。
ソースコードのポイントは下記の通りです。
public List<GlbResponseBody> GetAction(GlbRequestBody glbRequestBody) { try { var s3Client = new AmazonS3Client(RegionEndpoint.APNortheast1); var request = new Amazon.S3.Model.ListObjectsV2Request { BucketName = GlbUtil.S3_NOMURABBIT_BLOG_XXX, Prefix = glbRequestBody.Prefix }; Amazon.S3.Model.ListObjectsV2Response response = s3Client.ListObjectsV2Async(request).Result; List<Amazon.S3.Model.S3Object> s3Objects = response.S3Objects; List<GlbResponseBody> glbResponseBodyList = new List<GlbResponseBody>(); GlbResponseBody glbResponseBody = new GlbResponseBody(); foreach(Amazon.S3.Model.S3Object s3Object in s3Objects) { glbResponseBody = new GlbResponseBody(); glbResponseBody.BucketName = s3Object.BucketName; glbResponseBody.ETag = s3Object.ETag; glbResponseBody.Key = s3Object.Key; glbResponseBody.LastModified = s3Object.LastModified.ToString("yyyyMMddHHmmssfff"); glbResponseBody.OwnerDisplayName = (s3Object.Owner == null) ? " " : s3Object.Owner.DisplayName; glbResponseBody.OwnerId = (s3Object.Owner == null) ? " " : s3Object.Owner.Id; glbResponseBody.Size = s3Object.Size.ToString(); glbResponseBody.StorageClass = s3Object.StorageClass.Value; glbResponseBodyList.Add(glbResponseBody); } return glbResponseBodyList; } catch (System.Exception e) { throw e; } }
AmazonS3ClientのListObjectsV2Asyncメソッドの引数が
ListObjectsV2Requestのインスタンスになっています。
GitHubにソースコードを載せていますので、
よければ参考にしてください。
オブジェクトのプロパティをリストで返すプログラムです。
以上でS3バケットのオブジェクト一覧を
Lambdaで取得できると思います。
よかったら試してみてください。
では!