2016-09-26 80 views
1

我正在使用IBM Object Storage来存储大量非常小的文件, 说在一个小时内超过1500个小文件。 (1500个文件的总大小约为5 MB) 我正在使用对象存储库api来发布文件,每次只有一个文件。如何使用IBM Object Storage执行批量文件存储?

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

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

问候,

回答

1

看的OpenStack斯威夫特(Bluemix对​​象存储)中提供的archive-auto-extract功能。我假设您熟悉从Bluemix对​​象存储获取X-Auth-Token和Storage_URL。如果没有,我的文章large file manifests解释了这个过程。从文档中,约束包括:

  • 必须使用tar工具创建的tar归档文件。
  • 您可以上传普通文件,但不能上传其他项目(例如,空目录或符号链接)。
  • 您必须使用UTF-8编码成员名称。

的基本步骤是:IBM公司Bluemix通过查看信息的详细内容的服务@https://dal.objectstorage.open.softlayer.com/info支持此功能

  1. 确认。你会看到类似的响应中的JSON部分:
 
    "bulk_upload": { 
      "max_failed_extractions": 1000, 
      "max_containers_per_extraction": 10000 
    }
  • 创建您需要的文件集的tar归档。 tar gzip是最常见的。
  • 将此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对象存储帐户中创建一个新的容器。

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

    相关问题