aws-sdk-go で S3 の Prefix (Directory) 一覧を取得する方法
aws-sdk-go で S3 の ListObjects
をしたとき、 Prefix (Directory) の一覧は CommonPrefixes
に入ってくる。
ちょっとハマったので備忘録です。
shell コマンドの AWS CLI だと aws s3 list s3://bucketname/prefix/
で prefix 直下の Prefix (Directory) 一覧も取れていたので気にならなかったのですが、 aws-sdk-go だと ListObjectsOutputs.Contents
から Prefix の一覧が取得できません。
で、どこに入っているかというと Contents
と同階層にある CommonPrefixes
の方にありました。
なので、 aws-sdk-go
の Wrapper を用意するときは Contents
だけを返すのではなく ListObjectsOutputs
ごと返すか、 CommonPrefixes
を返すメソッドを別途用意できるような構造にしといたほうが良さそうですね。
以上、備忘録でした。