aws sdk php列出s3文件夹

问题描述:

我知道的一些事情。 文件夹不是S3的概念,它们仅仅是一个零字节对象,其键名使用'/'作为前缀。假设我们称之为简单的文件夹和文件会使我的问题更易于表达。aws sdk php列出s3文件夹

可以通过前缀=“root /”来执行s3-> get_object_list(..)并获取所有文件/文件夹。我的问题是这样的。

给出文件夹和子文件夹的列表,例如,

root/ 
root/folder1/ 
root/folder1/file1.txt 
root/folder2/ 
root/folder3/file2.txt 

如何只列出文件夹。我希望能够防止列出所有文件(即使在响应中它们不需要返回),但get_object_list在php中不支持commonPrefixes ref:http://docs.amazonwebservices.com/AWSSDKforPHP/latest/#m=AmazonS3/get_object_list 即使文档中提到这样的代码显然不会,并且使用分隔符实际上只会返回文件在根文件夹(前缀)

我想知道是否有人已经使用任何技术后响应或请求基础来帮助这种情况。

我已经试过每个组合的前缀,分隔符和标记,我可以想到。对于PCRE来说不太好,但是我确定我可以使用它,我只有一层深度的文件夹,但我不知道如何为这种情况构建一个文件夹。由于我的请求没有工作,我开始接受所有文件和文件夹的响应,并希望在PHP中排除它......所以我认为

我试过在后回应: dirname() - no use missses列出一些文件夹(空的),确定我可以删除数组中的重复项,但存在错过的文件夹问题 pathinfo() - 与dirname()的行为相同,假定所有路径都以filename结尾。 glob - 没有运气,和上面一样。

既然我已经浪费了半天时间在此我希望有人已经处理了这一点,并会照顾分享到:

注:我没有问题,Python和博托这样做。但这不是Python,我必须在PHP中为此项目执行此操作。

您已将get_object_list()list_objects()混淆。请参阅:https://forums.aws.amazon.com/thread.jspa?threadID=106277&tstart=0

+0

是的谢谢你回复。 :) – Vangel

+0

你非常欢迎。 :) 很高兴我能帮上忙。 –