使用PHP SDK列出AWS中按前缀过滤的对象



我最近得到了管理通过亚马逊网络服务存储的数据的任务。

根据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/",

最新更新