I'm having some troubles listing all the files within certain prefix of an AWS S3 Bucket.
I have searched and search, but only seem to be able to find the same information:
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";
}
This will give back a fair bit of information if I print_r($objects)
however, nothing is echo'd out in the loop, and no matter what I try, I can't seem to get it to list any files.
I actually have another 6 folders I want to retrieve a list of files from, however, obviously need to get it working with just document
for now.
I have tried removing the final / on the prefix, as well as using 'listObjects
':
$s3Client->getIterator('listObjects' ...
and even with trying a different method of just ListObjects
or ListObjectsV2
(found this information). The first one works but again doesn't list any files, and the second method isn't found.
$s3Client->ListObjects(array( ...
$s3Client->ListObjectsV2(array( ...
No doubt i'm missing something. All I want to achieve is the list of all files names within each of the folders/prefixes, so I can list these and use some clever jQuery to add them into a document when selected in our CMS, sure there should be more information on this somewhere!!!
Any help would be much appreciated.
print_r($objects)
returns: http://pastebin.com/YwWLLsSK
You are missing most important key to set which is
like this // 'ap-southeast-1' for asian region
'region' => 'ap-southeast-1',