我正在使用 IBM Object Storage 存储大量非常小的文件,比如一小时内超过 1500 个小文件。(1500 个文件的总大小约为 5 MB)我正在使用对象存储 api 来发布文件,一次一个文件。
问题是存储 1500 个小文件总共需要大约 15 分钟。这是建立和关闭与对象存储的连接。
有没有办法做一种批量发布,在一个帖子中发送多个文件?
问候,
我正在使用 IBM Object Storage 存储大量非常小的文件,比如一小时内超过 1500 个小文件。(1500 个文件的总大小约为 5 MB)我正在使用对象存储 api 来发布文件,一次一个文件。
问题是存储 1500 个小文件总共需要大约 15 分钟。这是建立和关闭与对象存储的连接。
有没有办法做一种批量发布,在一个帖子中发送多个文件?
问候,
查看Openstack Swift(Bluemix 对象存储)中可用的归档自动提取功能。我假设您熟悉从 Bluemix 对象存储中获取 X-Auth-Token 和 Storage_URL。如果没有,我关于大文件清单的帖子解释了这个过程。从文档中,约束包括:
- 您必须使用 tar 实用程序来创建 tar 归档文件。
- 您可以上传常规文件,但不能上传其他项目(例如,空目录或符号链接)。
- 您必须对成员名称进行 UTF-8 编码。
基本步骤是:
“批量上传”:{ “max_failed_extractions”:1000, “max_containers_per_extraction”:10000 }
使用特殊参数将此 tar 存档上传到对象存储,该参数告诉 swift 为您自动将内容提取到容器中。
PUT /v1/AUTH_myaccount/my_backups/? 提取存档=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 对象存储帐户中创建一个新容器。
瞧!批量上传。希望这可以帮助。