2017-01-30 3 views
0

У меня возникли проблемы с перечислением всех файлов в определенном префиксе AWS S3 Bucket.Список всех файлов внутри папки (префикс) внутри ведра AWS S3 с использованием AWS PHP SDK

Я искал и искать, но только кажется, чтобы быть в состоянии найти ту же информацию:

try { 
$objects = $s3Client->getIterator('ListObjects', array(
    'Bucket' => 'BUCKETNAME', 
    'Prefix' => '/uploads/content/document/' 
)); 
    foreach ($objects as $object) { 
     echo $object['Key'] . "\n"; 
    } 
} catch (S3Exception $e) { 
    echo $e->getMessage() . "\n"; 
} 

Это даст обратно справедливый бит информации, если я не print_r($objects) однако, ничего в echo'd в цикл, и независимо от того, что я пытаюсь, я не могу заставить его перечислять любые файлы.

У меня на самом деле есть еще 6 папок. Я хочу получить список файлов, но, очевидно, нужно заставить его работать только с document.

Я попытался удалить конечный/на приставке, а также с помощью «listObjects»:

$s3Client->getIterator('listObjects' ... 

и даже попробовать другой метод просто ListObjects или ListObjectsV2 (нашел эту информацию). Первый работает, но опять же не перечисляет файлы, а второй метод не найден.

$s3Client->ListObjects(array(... 
$s3Client->ListObjectsV2(array(... 

Без сомнения, я что-то пропустил. Все, что я хочу достичь, это список всех имен файлов в каждой из папок/префиксов, поэтому я могу их перечислить и использовать некоторые умные jQuery, чтобы добавить их в документ при выборе в нашей CMS, уверен, что должна быть больше информации об этом где-то!!!

Любая помощь будет высоко оценена.

print_r($objects) возвращается: http://pastebin.com/YwWLLsSK

+0

Попробуйте удалить запуск Символ '/'. Обычно префиксы не начинаются с разделителя: ''Префикс' => 'uploads/content/document /'' –

ответ

1

У вас не хватает наиболее важный ключ для установки, которая является

как этот // 'ар-юго-восток-1' для азиатского региона

  'region' => 'ap-southeast-1',