使用PHP SDK列出AWS中按前缀过滤的对象
我最近接到一项任务,管理通过Amazone Web服务存储的数据 根据Amazone的文档,我尝试使用以下代码列出一个bucket中的所有对象,效果很好:使用PHP SDK列出AWS中按前缀过滤的对象,php,amazon-web-services,amazon-s3,Php,Amazon Web Services,Amazon S3,我最近接到一项任务,管理通过Amazone Web服务存储的数据 根据Amazone的文档,我尝试使用以下代码列出一个bucket中的所有对象,效果很好: $aws = Aws::factory('/path/to/my/config.php'); $s3 = $aws->get('s3'); $it = $s3->getIterator('ListObjects', array ( 'Bucket' => 'myBucket', ) ); for
$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 />";
}
(我要访问的文件的实际密钥为(scheme):
myPrefix/subPrefix/subPrefix2/file.txt)
但是代码不断返回bucket中的所有对象。
我在亚马逊文档中没有找到任何关于我的问题的有用提示
有人能告诉我(其中一个)在PHP中列出给定前缀的所有对象的正确语法吗
提前感谢您根据以下线程提供的任何帮助 。。。需要将作为第二个参数传递给getIterator函数的数组的索引值大写:
“prefix”=>“myPrefix/”,根据以下线程 。。。需要将作为第二个参数传递给getIterator函数的数组的索引值大写:
“prefix”=>“myPrefix/”,如果有大量对象,我不建议使用这种方法。跟踪通过某个数据库存储的对象,然后搜索该数据库。您可以利用
S3通知
和SNS
跟踪bucket中创建的对象。感谢您的提示。我会明确地检查这一点。如果你有大量的对象,我不建议使用这种方法。跟踪通过某个数据库存储的对象,然后搜索该数据库。您可以利用S3通知
和SNS
跟踪bucket中创建的对象。感谢您的提示。我一定会查清楚的。
'prefix' => 'myPrefix/',