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

The fastest method to move tens of thousands of small files to Azure Storage container

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

我正在尝试 Azure 的 highly-recommended CloudBerry 资源管理器,estimated-time 完成时间对我来说大约是 4 小时(大约 ~30K文件总数,平均文件大小为 5KB)。这对我来说是无法接受的——我想大幅减少那个时间。

你能推荐其他选择吗?我认为 non-GUI 个会更快。我将提供我尝试过的一个 Linux-based 解决方案的示例(下方),但它对我不起作用。也许专家可以指出类似的东西,但有一个正确的用法示例。当涉及到详尽的示例时,下面的解决方案并不是特别 well-documented 。提前致谢,如有需要,请随时向我询问更多信息。


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

完整追溯:

<?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'

请尝试将您的 blobxfer 升级到 0.9.9.6。最近修复了 zero-byte 个文件的一些错误。

关于 blobxfer 的问题,您应该直接在 GitHub 页面而不是在 Whosebug 上打开问题。代码的维护者可以更轻松地查看您的问题并回复 and/or 解决您与该特定工具相关的问题。如果您在升级到 0.9.9.6 后仍然遇到 blobxfer 问题,那么 post 直接在 GitHub 项目页面上提出问题。

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