繁体   English   中英

如何使用REST API列出OpenStack对象存储区(Swift)的对象和(虚拟目录)

[英]How to list objects and (virtual directorys) using the REST API for OpenStack Object Store(Swift)

我们将REST API用于OpenStack对象存储(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 = / * /”。

我只是想解决同样的问题。 在文档中找到了答案: http : //docs.openstack.org/user-guide/cli_swift_pseudo_hierarchical_folders_directories.html#list-pseudo-hierarchical-folders-request-http

使用其示例(请注意prefixdelimiter查询字符串参数):

$ curl -X GET -i -H "X-Auth-Token: $token" $publicurl/v1/AccountString/backups?prefix=photos/&delimiter=/

将返回:

photos/animals/
photos/me.jpg
photos/plants/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM