我们有一个应用程序,用户可以创建自己的网页并托管它们。我们使用 S3 来存储静态页面。在这里,由于我们每个用户有 100 个存储桶的限制,我们决定为每个用户使用文件夹桶内的用户。
现在,如果用户想在他的域上托管他的网站,我们会向他询问域名(当他开始时,我们将其发布到我们的子域上),我必须重命名该文件夹。
S3 是一个平面文件系统,我知道实际上没有文件夹,只有分隔符/
分隔值,因此我无法进入文件夹并检查它包含多少页。API 允许它一一对应,但为此我们必须知道存储桶中的对象名称。
我浏览了文档并发现了迭代器 http://docs.aws.amazon.com/aws-sdk-php-2/guide/latest/feature-iterators.html,我还没有实现。这使用guzzle https://github.com/guzzle/guzzle我没有这方面的经验,并且在实施方面面临挑战
我还有其他路可以走吗,或者我需要走这条路。
您可以通过执行以下操作为“文件夹”的内容创建迭代器:
$objects = $s3->getIterator('ListObjects', array(
'Bucket' => 'bucket-name',
'Prefix' => 'subfolder-name/',
'Delimiter' => '/',
));
foreach ($objects as $object) {
// Do things with each object
}
如果你只需要计数,你可以这样:
echo iterator_count($s3->getIterator('ListObjects', array(
'Bucket' => 'bucket-name',
'Prefix' => 'subfolder-name/',
'Delimiter' => '/',
)));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)