Я пытаюсь получить список Object
под определенной папкой в моем ковше.
Я знаю, что для получения списка всех моих объектов я делаю:
$objects = $client->getIterator('ListObjects', array( 'Bucket' => $bucket ));
Я хочу получить только объекты под папкой my/folder/test
. Я попытался добавить
'key' => "my/folder/test",
А также
'prefix' => "my/folder/test",
Но он просто возвращает все объекты в моем ковше.
Вы должны использовать Prefix
чтобы ограничить поиск определенным каталогом (общим префиксом).
$objects = $client->getIterator('ListObjects', array( "Bucket" => $bucket, "Prefix" => "your-folder/" ));
Ответ выше, однако я решил, что поставлю полный рабочий пример, который можно скопировать и вставить непосредственно в файл php и запустить
use Aws\S3\S3Client; require_once('PATH_TO_API/aws-autoloader.php'); $s3 = S3Client::factory(array( 'key' => 'YOUR_KEY', 'secret' => 'YOUR_SECRET', 'region' => 'us-west-2' )); $bucket = 'YOUR_BUCKET_NAME'; $objects = $s3->getIterator('ListObjects', array( "Bucket" => $bucket, "Prefix" => 'some_folder/' //must have the trailing forward slash "/" )); foreach ($objects as $object) { echo $object['Key'] . "<br>"; }