Подтвердить что ты не робот

Список объектов в определенной папке на Amazon S3

Я пытаюсь получить список Object под определенной папкой в ​​моем ковше.

Я знаю, что для получения списка всех моих объектов я делаю:

    $objects = $client->getIterator('ListObjects', array(
    'Bucket' => $bucket
)); 

Я хочу получить только объекты под папкой my/folder/test. Я попытался добавить

        'key' => "my/folder/test",

И

        'prefix' => "my/folder/test",

Но он просто возвращает все объекты в моем ковше.

4b9b3361

Ответ 1

Вам нужно использовать Prefix, чтобы ограничить поиск определенным каталогом (общим префиксом).

$objects = $client->getIterator('ListObjects', array(
    "Bucket" => $bucket,
    "Prefix" => "your-folder/"
)); 

Ответ 2

Ответ выше, однако я решил, что поставлю полный рабочий пример, который можно скопировать и вставить непосредственно в файл 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>";
}