我们将REST API用于OpenStack Object Store(Swift)。 猜测OpenStack对象存储中确实存在以下结构:
/containername/object1.txt
/containername/object2.txt
/containername/pseudo-directoryname/object3.txt
/containername/pseudo-directoryname/object4.txt
要从容器中获取对象列表,我们可以使用具有指定URL的HTTP GET请求。 到现在为止还挺好。结果:
/object1
/object2.txt
/pseudo-directoryname/object3
/pseudo-directoryname/object4.txt
GET请求与分隔符参数(“URL + ABSOLUTEPATH?delimiter = /”)结合使用会从结果中删除伪目录。
/object1.txt
/object2.txt
我希望容器中的所有对象与容器中的伪目录相结合。
是否有解决方案来获取以下结果而不获取所有对象并在客户端解析它们?
/object1.txt
/object2.txt
/pseudo-directoryname/
使用delimiter参数时,我没有找到任何关于通配符的信息。 比如“URL + ABSOLUTEPATH?delimiter = / * /”。
答案 0 :(得分:1)
我只是想尝试同样的事情。在文档中找到答案:http://docs.openstack.org/user-guide/cli_swift_pseudo_hierarchical_folders_directories.html#list-pseudo-hierarchical-folders-request-http
使用他们的示例(请注意prefix
和delimiter
查询字符串参数):
$ curl -X GET -i -H "X-Auth-Token: $token" $publicurl/v1/AccountString/backups?prefix=photos/&delimiter=/
会回来:
photos/animals/
photos/me.jpg
photos/plants/