【发布时间】:2016-09-26 09:32:31
【问题描述】:
我正在使用 IBM Object Storage 来存储大量非常小的文件, 在一小时内说 1500 多个小文件。 (1500 个文件的总大小约为 5 MB) 我正在使用对象存储 api 来发布文件,一次一个文件。
问题是存储 1500 个小文件总共需要大约 15 分钟。这是建立和关闭与对象存储的连接。
有没有办法进行批量发布,在一个帖子中发送多个文件?
问候,
【问题讨论】:
我正在使用 IBM Object Storage 来存储大量非常小的文件, 在一小时内说 1500 多个小文件。 (1500 个文件的总大小约为 5 MB) 我正在使用对象存储 api 来发布文件,一次一个文件。
问题是存储 1500 个小文件总共需要大约 15 分钟。这是建立和关闭与对象存储的连接。
有没有办法进行批量发布,在一个帖子中发送多个文件?
问候,
【问题讨论】:
查看 Openstack Swift(Bluemix 对象存储)中可用的 archive-auto-extract 功能。我假设您熟悉从 Bluemix 对象存储中获取 X-Auth-Token 和 Storage_URL。如果没有,我关于large file manifests 的帖子解释了这个过程。从文档中,约束包括:
- 您必须使用 tar 实用程序来创建 tar 归档文件。
- 您可以上传常规文件,但不能上传其他项目(例如,空目录或符号链接)。
- 您必须对成员名称进行 UTF-8 编码。
基本步骤是:
使用特殊参数将此 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 对象存储帐户中创建一个新容器。
瞧!批量上传。希望这会有所帮助。
【讨论】: