[AWS S3] バケットの画像パス一覧を取得する

S3に画像が置いてあり、view側では画像のファイル名のみわかっており、拡張子が不明だった場合に、view側からS3に画像があるか判定して、画像があれば拡張子を取得して表示する、という仕組みを作りたかった。

globやfile_get_contentsでワイルドカードを使って拡張子を取得しようとしたが上手くいかない。
よって、画像パス一覧を取得してDBに格納する方法に切り替える。

### バケットの画像パス一覧を取得

require_once "./vendor/autoload.php";

$prefix = "test/";
$s3client = new Aws\S3\S3Client([
    'credentials' => [
        'key' => $key,
        'secret' => $secret,
    ],
    'region' => 'ap-northeast-1',
    'version' => 'latest',
]);

$objects = $s3client->listObjects([
	'Bucket' => $bucket,
	'Prefix' => $prefix,
	'Delimiter' => "/"
]);

$list = array();
foreach($objects["Contents"] as $object) {
    if(substr($object['Key'],-1,1) != "/"){
        array_push($list, substr($object['Key'], 5));
    }
}

print("<pre>");
var_dump($list);
print("</pre>");

ここからDBにpdoで入れる方法を考えます。