listObjects APIの解説

こちらの仕様書 を読めばわかるのだが、一応サンプルを元に備忘録も兼ねてまとめておこうと思う。

リクエストのパラメータ

Bucket
バケット
Delimiter
区切り文字で、ディレクトリ毎に一覧取得したい場合は"/"を指定する
EncodingType
通常指定する必要は無さそう。現状は'url'だけ指定できるみたい
Marker
これで指定したオブジェクト名からオブジェクトを取得する。一覧の上限数がオーバーした時に、これを指定して残りを取得できる
MaxKeys
取得する一覧の上限。デフォルト&MAXは1000
Prefix
何も指定しなければ全部。指定すれば先頭がこれにマッチするもの。あるディレクトリ以下の一覧を取得する場合に使用する

レスポンスのデータ

data.IsTruncated
MaxKeysを超えるオブジェクト数があったらtrue。その場合、残りのオブジェクトを問い合わせる際に、NextMarker をリクエストのMarkerパラメータに指定する
data.NextMarker
↑参照。ちなみにdelimiterに何かセットしておかないとダメみたいです。オブジェクトの並び順はアルファベット順。
data.Contents
マッチしたオブジェクトの配列
data.Contents.Key
オブジェクト名(ex: aaa.txt、aaa/、aaa/bbb.txt)。ディレクトリもマッチするので注意
data.Contents.LastModified
最終更新日
data.Contents.ETag
一意な文字列
data.Contents.Size
バイト数
data.Contents.StorageClass
STANDARD or REDUCED_REDUNDANCY or GLACIER
data.CommonPrefixes
マッチしたディレクトリの配列
data.CommonPrefixes.Prefix
ディレクトリ名。(ex: aaa/)
Name
リクエストで指定したバケット
Prefix
リクエストで指定したもの
MaxKeys
リクエストで指定したもの
EncodingType
リクエストで指定したもの