Aws\S3\S3Clientで画像を取得する際に、1000件を超えると、1000件までしか取得できない。
-> ListAllObjectsを使おうとするとエラーになる。
-> $s3client->getPaginatorを使用する。
$s3client = new Aws\S3\S3Client([ 'credentials' => [ 'key' => $key, 'secret' => $secret, ], 'region' => 'ap-northeast-1', 'version' => 'latest', ]); $results = $s3client->getPaginator('ListObjects',[ 'Bucket' => $bucket, 'Prefix' => $prefix, 'Delimiter' => "/" ]); $list = array(); foreach ($results as $result) { foreach($result["Contents"] as $object) { if(substr($object['Key'],-1,1) != "/"){ array_push($list, substr($object['Key'], 4)); } } } echo count($list);
$ php app.php
1069
参考ページ: https://docs.aws.amazon.com/ja_jp/sdk-for-php/v3/developer-guide/guide_paginators.html
焦るがなー 画像ファイル側に何かあったのかと思って冷や汗かいたわ。