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