2013-03-08 94 views
0

我为商店工作的公司在其服务器上处理来自其客户端的文件,并为每个客户端提供一个简单页面,该页面链接到服务器上的文件目录。每个客户端都有一个文件夹,其中任何一个都可能有许多子文件夹。如何以分层方式检索S3存储桶内容?

我最近将此设置移至Amazon S3存储桶。我的问题是,当我检索存储桶的内容时(使用我在网上找到的S3 php类),它会返回一个包含整个内容的大量FLAT数组。我可以对此进行过滤,以便每个客户端只能看到他们的目录,但将这种分层数据结构转换为以后的显示会被证明是一个巨大的麻烦。

是否有任何函数以某种方式返回S3项目,以反映它们的结构?如果不是这样,这可能会变成一个关于从大阵列平面阵列生成多维阵列的问题。

谢谢! Chris

回答

0

S3支持分级使用前缀和分隔符的列表键,更多信息请参见docs

0

使用前缀和delimeters来获取文件列表。

<?php   
    $prefix = "jsondata/$folderName/$subFolderName/temp/"; 
    //$bucketname is a root bucket name 
    $ret = $s3->getObjectsByBucket($bucketname, array(
     'prefix' => $prefix, 
     'delimiter' => '' 
    )); 
    ?> 
相关问题