如何使用IBM Object Storage进行批量文件存储?

时间:2016-09-26 09:32:31

标签: ibm-cloud object-storage

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

问题是,存储1500个小文件总共需要15分钟。这是设置和关闭与对象库的连接。

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

此致

1 个答案:

答案 0 :(得分:1)

查看Openstack Swift(Bluemix对​​象存储)中可用的archive-auto-extract功能。我假设您熟悉从Bluemix对​​象存储中获取X-Auth-Token和Storage_URL。如果没有,我关于large file manifests的帖子解释了这个过程。从文档中,约束包括:

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

基本步骤是:

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

    4. 瞧!批量上传。希望这会有所帮助。