[英]aws sdk php for listing s3 folders
我知道的一些事情。 文件夹不是S3的概念,它们只是一个零字节对象,其键名使用'/'作为前缀。 假设我们称它们为文件夹和文件以简单起见会使我的问题更容易用语。
可以使用prefix =“root /”执行s3-> get_object_list(..)并获取所有文件/文件夹。 我的问题是这个。
给出例如文件夹和子文件夹的列表
root/
root/folder1/
root/folder1/file1.txt
root/folder2/
root/folder3/file2.txt
我怎样才能列出文件夹。 我希望阻止列出所有文件(即使在回复时他们不需要返回)但是php中的get_object_list当前不支持commonPrefixes参考: http ://docs.amazonwebservices.com/AWSSDKforPHP/latest/#m=AmazonS3/get_object_list甚至虽然文档说明代码显然没有,并且使用分隔符实际上只会返回根文件夹中的文件(前缀)
我想知道是否有人使用任何技术后回应或请求帮助这种情况。
我已经尝试了我能想到的前缀,分隔符和标记的每个组合。 对PCRE不太好,但我确定我可以使用我只有一个级别的深层文件夹,但我不知道如何为这种情况构建一个。 由于我的请求不起作用,我继续接受所有文件和文件夹的响应,并希望在php中排序...或者我认为
我已经尝试过post响应:dirname() - 没有使用错过了一些文件夹(空的),确定我可以删除数组中的重复项但错过文件夹的问题存在pathinfo() - 行为与dirname()相同,假设所有路径都以文件名结尾。 glob - 没有运气,和上面一样。
因为我已经浪费了半天的时间,所以我希望有人处理过这个问题并愿意分享:
注意:我在python和boto中执行此操作没有问题。 但这不是python,我必须在PHP中为此项目执行此操作。
你把get_object_list()
与list_objects()
。 请参阅: https : //forums.aws.amazon.com/thread.jspa?threadID = 106277&tstart = 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.