-1

我在列出 AWS S3 存储桶的特定前缀内的所有文件时遇到了一些麻烦。

我搜索了又搜索,但似乎只能找到相同的信息:

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),并且无论我尝试什么,我似乎都无法让它列出任何文件。

我实际上还有另外 6 个文件夹,我想从中检索文件列表,但是,显然现在需要让它工作document

我尝试删除前缀上的最后 / ,以及使用 ' listObjects':

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

甚至尝试不同的方法只是ListObjectsListObjectsV2(找到此信息)。第一个有效,但再次没有列出任何文件,并且找不到第二种方法。

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

毫无疑问,我错过了一些东西。我想要实现的是每个文件夹/前缀中所有文件名的列表,所以我可以列出这些并使用一些聪明的 jQuery 在我们的 CMS 中选择它们时将它们添加到文档中,确保应该有更多关于此的信息某处!!!

任何帮助将非常感激。

print_r($objects)返回: http: //pastebin.com/YwWLLsSK

4

1 回答 1

1

您缺少最重要的设置键

像这样 // 'ap-southeast-1' 用于亚洲地区

            'region'  => 'ap-southeast-1',
于 2017-01-30T18:49:10.400 回答