Ответ 1
Вам нужно использовать Prefix
, чтобы ограничить поиск определенным каталогом (общим префиксом).
$objects = $client->getIterator('ListObjects', array(
"Bucket" => $bucket,
"Prefix" => "your-folder/"
));
Я пытаюсь получить список 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>";
}