Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 将成千上万个小文件移动到Azure存储容器的最快方法_Linux_Azure_Azure Storage_Azure Storage Blobs - Fatal编程技术网

Linux 将成千上万个小文件移动到Azure存储容器的最快方法

Linux 将成千上万个小文件移动到Azure存储容器的最快方法,linux,azure,azure-storage,azure-storage-blobs,Linux,Azure,Azure Storage,Azure Storage Blobs,将数以万计的小图像文件从我的本地计算机移动到Azure云存储中的容器的最快方法是什么 我正在尝试强烈推荐的CloudBerry explorer for Azure,目前估计完成时间大约为4小时(总共约30K个文件,平均5KB文件大小)。这对我来说是无法接受的——我想大幅缩短这段时间 你能建议其他的选择吗?我认为非GUI的会更快。我将提供一个我尝试过的基于Linux的解决方案的示例(如下),但它对我不起作用。也许专家可以指出类似的东西,但要有一个正确的用法示例。当涉及到详尽的示例时,下面的解决方

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

我正在尝试强烈推荐的CloudBerry explorer for Azure,目前估计完成时间大约为4小时(总共约30K个文件,平均5KB文件大小)。这对我来说是无法接受的——我想大幅缩短这段时间

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


我尝试过的基于Linux的解决方案称为AzCopy,它与AzCopy类似,但适用于Linux。我使用的命令是
blobxfer mystorageaccount pictures/home/myuser/s3--upload--storageaccountkey=--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'

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

关于blobxfer的问题,您应该直接在GitHub页面而不是stackoverflow上打开问题。代码的维护人员将更容易查看您的问题,并就特定工具回答和/或修复您的问题。如果在升级到0.9.9.6后blobxfer仍然遇到问题,请直接在GitHub项目页面上发布问题


一般来说,正如Shelleter所指出的,对于数千个小文件,您应该先将其归档,然后上载归档以获得更大的吞吐量。

gzip归档文件(这需要时间),然后在传输后扩展归档文件(时间更长,但比发送单个文件要少)。祝你好运,没有正确的答案。除了你使用的工具之外,还有其他你可以尝试的工具;您可以直接使用API/SDK;您可以使用Azure提供的AzCopy;或者任何你能找到的东西。你需要自己做测试。您还需要查看存储以查看每秒的最大存储API事务数(2000/blob,20000/存储帐户)和最大入口数(每个blob 60 MB/s,每个帐户10+Gbps),并计算出最大理论上载性能。