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
焦るがなー 画像ファイル側に何かあったのかと思って冷や汗かいたわ。