将数万个小文件移动到Azure存储容器的最快方法

时间:2015-12-27 21:09:20

标签: linux azure azure-storage azure-storage-blobs

将数万个小图像文件从本地计算机移动到Azure云存储中的容器的最快方法是什么?

我正在尝试Azure推荐的CloudBerry资源管理器,目前估计完成时间大约为 4小时(总共约30K文件,平均文件大小为5KB) 。这对我来说是不可接受的 - 我想彻底减少那段时间。

你能建议其他选择吗?我认为非GUI的会更快。我将提供一个示例(下面)我尝试过的一个基于Linux的解决方案,但这对我来说并不起作用。也许专家可以指出类似的东西,但有正确的用法示例。当谈到详尽的例子时,下面的解决方案并没有特别好的记录。提前致谢,如果您需要,请随时向我询问更多信息。

我尝试的基于Linux的解决方案称为blobxfer - 类似于AzCopy,但对于Linux。我使用的命令是blobxfer mystorageaccount pictures /home/myuser/s3 --upload --storageaccountkey=<primary access key from portal.azure.com> --no-container。但我不断收到一个神秘的错误:未知错误(其中一个HTTP标头的值格式不正确。)

完整追溯:

<?xml version="1.0" encoding="utf-8"?><Error><Code>InvalidHeaderValue</Code><Message>The value for one of the HTTP headers is not in the correct format.
RequestId:61a1486c-0101-00d6-13b5-408578134000
    Time:2015-12-27T12:56:03.5390180Z</Message><HeaderName>x-ms-blob-content-length</HeaderName><HeaderValue>0</HeaderValue></Error>
Exception in thread Thread-49 (most likely raised during interpreter shutdown):

Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
  File "/home/myuser/.virtualenvs/redditpk/local/lib/python2.7/site-packages/blobxfer.py", line 506, in run
  File "/home/myuser/.virtualenvs/redditpk/local/lib/python2.7/site-packages/blobxfer.py", line 597, in putblobdata
  File "/home/myuser/.virtualenvs/redditpk/local/lib/python2.7/site-packages/blobxfer.py", line 652, in azure_request
<type 'exceptions.AttributeError'>: 'NoneType' object has no attribute 'Timeout'

1 个答案:

答案 0 :(得分:0)

请尝试将blobxfer升级到0.9.9.6。最近修复了零字节文件的一些错误。

关于使用blobxfer的问题,您应该直接在GitHub页面而不是stackoverflow上打开问题。代码维护人员可以更轻松地查看您的问题,并针对该特定工具回复和/或解决您的问题。如果在升级到0.9.9.6后仍然遇到blobxfer问题,那么直接在GitHub项目页面上发布问题。

一般情况下,正如shellter指出的那样,对于数以千计的小文件,您应该首先将它们存档,然后上传存档以获得更高的吞吐量。