1

我正在使用 IBM Object Storage 存储大量非常小的文件,比如一小时内超过 1500 个小文件。(1500 个文件的总大小约为 5 MB)我正在使用对象存储 api 来发布文件,一次一个文件。

问题是存储 1500 个小文件总共需要大约 15 分钟。这是建立和关闭与对象存储的连接。

有没有办法做一种批量发布,在一个帖子中发送多个文件?

问候,

4

1 回答 1

1

查看Openstack Swift(Bluemix 对象存储)中可用的归档自动提取功能。我假设您熟悉从 Bluemix 对象存储中获取 X-Auth-Token 和 Storage_URL。如果没有,我关于大文件清单的帖子解释了这个过程。从文档中,约束包括:

  • 您必须使用 tar 实用程序来创建 tar 归档文件。
  • 您可以上传常规文件,但不能上传其他项目(例如,空目录或符号链接)。
  • 您必须对成员名称进行 UTF-8 编码。

基本步骤是:

  1. 通过查看服务@ https://dal.objectstorage.open.softlayer.com/info的信息详细信息,确认IBM Bluemix 支持此功能。您将在响应中看到类似于以下内容的 JSON 部分:
    “批量上传”:{
          “max_failed_extractions”:1000,
          “max_containers_per_extraction”:10000
    }
  1. 创建所需文件集的 tar 存档。tar gzip 是最常见的。
  2. 使用特殊参数将此 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
    ...
    
  3. 检查结果。存档中的任何顶级目录都应在您的 Swift 对象存储帐户中创建一个新容器。

瞧!批量上传。希望这可以帮助。

于 2016-11-10T14:24:52.387 回答