我最近得到了管理通过亚马逊网络服务存储的数据的任务。
根据amazon的文档,我尝试了下面的代码来列出bucket中的所有对象,它工作得很好:
$aws = Aws::factory('/path/to/my/config.php');
$s3 = $aws->get('s3');
$it = $s3->getIterator('ListObjects', array (
'Bucket' => 'myBucket',
)
);
foreach($it as $o){
echo $o['Key']."<br />";
}
但是我需要列出所有的对象只有一个特定的前缀。为了实现这一点,我在所示代码的第6行下面添加了以下行:
'prefix' => 'myPrefix/',
(我要访问的文件的实际密钥是(scheme):myPrefix/subPrefix subPrefix2/file.txt)
但是代码一直返回桶中的所有对象。对于我的问题,我没有在Amazon文档中找到任何有用的提示。
谁能告诉我(一个)正确的语法列出一个给定的前缀在PHP的所有对象?
提前感谢您的帮助
根据下面的线程…
列出Amazon S3上特定文件夹中的对象
…您需要将作为第二个参数传递给getiterator函数的数组的索引值大写:
的 p 再设立"=>"myPrefix/",