s3バケット内のファイル一覧を取得したい
というわけでヘルプページを参照してみる。
getIteratorとlistObjectsという似たような関数
自分なりにざっくりまとめてみると以下のようなことだと思います。
listObjectsは低レベル
getIteratorは高レベル
と書かれています。
ここでいうレベルとはおそらく
レイヤーの意味だと思います。
わかりやすく例として挙げるならば
アセンブラは低レベル
C言語は高レベル
javascriptは低レベル
reactやbabelは高レベル
より基本となるものが低レベル、それを応用したものが高レベルということだと思います。
getIteratorとlistObjectsの具体的な違い
上記公式ヘルプページに書かれている内容として
listObjectsで1000件以上のkey(s3にあるファイル)を取得するには
listObjects関数を1000権取得するたびに実行する必要がある。
getIterator関数に関しては1000件以上一気に取得することができる。
関数側でいろいろよしなな処理を実行してくれるわけですね。
個人的な事例として
今回は一度に取得するファイルの数が1000件を超えることはないため
listObjectsのほうが処理が軽そうという理由から
listObjectsを使用することにした。