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 を返すメソッドを別途用意できるような構造にしといたほうが良さそうですね。

以上、備忘録でした。

Share Comments
comments powered by Disqus