从Linux上载10,000,000个文件到Azure blob存储

时间:2014-09-18 06:03:45

标签: azure azure-storage

我对S3有一些经验,过去曾使用s3-parallel-put将许多(数百万)小文件放在那里。与Azure相比,S3的PUT价格昂贵,所以我想切换到Azure。

但我似乎无法弄清楚如何使用azure cli将本地目录同步到远程容器。特别是,我有以下问题:

1- aws客户端提供sync选项。 azure是否有这样的选项?

2-我可以使用cli同时将多个文件上传到Azure存储吗?我注意到-concurrenttaskcount有一个azure storage blob upload标志,所以我认为原则上它必须是可能的。

3 个答案:

答案 0 :(得分:4)

如果您更喜欢命令行并拥有最近的Python解释器,Azure Batch和HPC团队已发布了一些代码示例,其中包含一些AzCopy-like functionality on Python called blobxfer。这允许完全递归目录进入Azure存储以及完整容器复制回本地存储。 [完全披露:我是此代码的撰稿人]

回答你的问题:

  1. blobxfer支持使用MD5校验和比较入口和出口的类似rsync的操作
  2. blobxfer在单个文件和多个文件中执行并发操作。但是,您可能希望将输入拆分为多个目录和容器,这不仅有助于减少脚本中的内存使用量,而且还可以更好地对负载进行分区

答案 1 :(得分:0)

https://github.com/Azure/azure-sdk-tools-xplat是azure-cli的来源,因此可以在那里找到更多细节。您可能想要向回购公司开放问题:)

  1. 到目前为止,azure-cli不支持“同步”。
  2. -concurrenttaskcount是支持单个文件中的并行上传,这会大大提高上传速度,但它还不支持多个文件。

答案 2 :(得分:0)

为了将批量文件上传到blob存储中,Microsoft提供了一个工具Checkout 存储资源管理器允许您执行所需的任务..