使用 AWS PHP SDK 列出 AWS S3 存储桶内文件夹(前缀)内的所有文件
List all files within a folder (prefix) inside an AWS S3 Bucket using the AWS PHP SDK
我在列出 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' ...
甚至尝试使用 ListObjects
或 ListObjectsV2
的不同方法(找到此信息)。第一个有效,但同样没有列出任何文件,并且找不到第二个方法。
$s3Client->ListObjects(array( ...
$s3Client->ListObjectsV2(array( ...
毫无疑问,我遗漏了什么。我想要实现的是每个 folders/prefixes 中所有文件名的列表,所以我可以列出这些并使用一些聪明的 jQuery 在我们的 CMS 中选择时将它们添加到文档中,当然有某处应该有更多关于这方面的信息!!!
如有任何帮助,我们将不胜感激。
print_r($objects)
returns: http://pastebin.com/YwWLLsSK
您缺少要设置的最重要的键
像这样
// 'ap-southeast-1' 亚洲地区
'region' => 'ap-southeast-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' ...
甚至尝试使用 ListObjects
或 ListObjectsV2
的不同方法(找到此信息)。第一个有效,但同样没有列出任何文件,并且找不到第二个方法。
$s3Client->ListObjects(array( ...
$s3Client->ListObjectsV2(array( ...
毫无疑问,我遗漏了什么。我想要实现的是每个 folders/prefixes 中所有文件名的列表,所以我可以列出这些并使用一些聪明的 jQuery 在我们的 CMS 中选择时将它们添加到文档中,当然有某处应该有更多关于这方面的信息!!!
如有任何帮助,我们将不胜感激。
print_r($objects)
returns: http://pastebin.com/YwWLLsSK
您缺少要设置的最重要的键
像这样 // 'ap-southeast-1' 亚洲地区
'region' => 'ap-southeast-1',