我使用IBM Object Storage来存储大量非常小的文件, 一小时内说超过1500个小文件。 (1500个文件的总大小约为5 MB) 我使用对象存储api发布文件,一次发布一个文件。
问题是,存储1500个小文件总共需要15分钟。这是设置和关闭与对象库的连接。
有没有办法做一个批量发布,在一个帖子中发送多个文件?
此致
答案 0 :(得分:1)
查看Openstack Swift(Bluemix对象存储)中可用的archive-auto-extract功能。我假设您熟悉从Bluemix对象存储中获取X-Auth-Token和Storage_URL。如果没有,我关于large file manifests的帖子解释了这个过程。从文档中,约束包括:
- 您必须使用tar实用程序来创建tar存档文件。
- 您可以上传常规文件,但无法上传其他项目(例如,空目录或符号链接)。
- 您必须对成员名称进行UTF-8编码。
基本步骤是:
"bulk_upload": { "max_failed_extractions": 1000, "max_containers_per_extraction": 10000 }
使用特殊参数将此tar存档上传到对象存储,该参数告诉swift将内容自动提取到容器中。
PUT /v1/AUTH_myaccount/my_backups/?extract-archive=tar.gz
从文档:要上传档案文件,请发出PUT请求。添加extract-archive = format查询参数以指示您正在上载tar归档文件而不是正常内容。在请求正文中包含本地文件backup.tar.gz的内容。
类似的东西:
AUTH_myaccount/my_backups/etc/config1.conf
AUTH_myaccount/my_backups/etc/cool.jpg
AUTH_myaccount/my_backups/home/john/bluemix.conf
...
检查结果。存档中的任何顶级目录都应在Swift对象存储帐户中创建一个新容器。
瞧!批量上传。希望这会有所帮助。