【问题标题】:Cannot download BLOBs from Azure Storage using AzCopy无法使用 AzCopy 从 Azure 存储下载 BLOB
【发布时间】:2015-11-16 17:28:53
【问题描述】:

我正在尝试使用 AzCopy 从 Azure 存储帐户中的容器下载 blob。每次我发出命令时,它都会立即返回并显示“已完成 0 个文件,共 0 个文件”。

容器是私有的。我正在使用 Windows Azure 存储命令行,它包含在包含 AzCopy 的 Windows Azure 存储工具下载中。

我可以毫无问题地使用 AzCopy 成功上传文件。以下是我的命令示例。

上传(复制)到 Azure 存储 - 可行

AzCopy c:\temp https://<myaccount>.blob.core.windows.net/<mycontainer> /destkey:<mykey> /V:C:\temp\logs\azcopy.log

从 Azure 存储下载(复制) - 这不起作用

AzCopy https://<myaccount>.blob.core.windows.net/<mycontainer> c:\temp\meb /sourceKey:<mykey> /V:C:\temp\logs\azcopy.log

我知道我的密钥是正确的,因为上传没有问题。好像它认为容器中没有文件,但如果我登录到 Azure 门户,我可以在 -mycontainer- 中看到文件,该文件位于 -myaccount- 中。

我在网上找不到任何有类似问题的人的详细信息。我错过了什么?

AzCopy 文件夹文件和版本

  • AzCopy.exe (1.0.8698.584)
  • Microsoft.Data.Edm.dll (5.6.0.61587)
  • Microsoft.Data.OData.dll (5.6.0.61587)
  • Microsoft.Data.Services.Client.dll (5.6.0.61587)
  • Microsoft.WindowsAzure.Storage.DataMovement.dll (1.0.8698.584)
  • Microsoft.WindowsAzure.Storage.dll (3.0.3.0)

【问题讨论】:

  • 您使用的是哪个版本的 SDK?能否列出 AzCopy 文件夹中所有文件(exe 和 dll)的版本号?
  • @GauravMantri 我已经用 AzCopy 文件夹文件和版本更新了这个问题。您能提供的任何帮助将不胜感激!
  • 谢谢。我有相同的 DLL,也看到了同样的问题。我倾向于相信这个问题与这里的问题有点相关:stackoverflow.com/questions/21650463/… 但我不是 100% 确定。让我对它做更多的研究。我可能需要一段时间才能重新开始讨论。
  • 感谢您的调查。任何帮助表示赞赏。这似乎是最基本的操作。并且有这个功能的例子。

标签: azure azcopy


【解决方案1】:

尝试通过指定 /S 参数来下载 blob。所以你的下载命令是:

AzCopy https://<myaccount>.blob.core.windows.net/<mycontainer> c:\temp\meb /sourceKey:<mykey> /S /V:C:\temp\logs\azcopy.log

来自文档:

/S                        Recursive copy.
                          In recursive copy mode the source and destination
                          are treated as a directory (file-system) or
                          as a prefix string (blob storage).

这应该可以解决问题。

【讨论】:

  • 哇,你是对的。当我阅读有关 azcopy 的帮助时,我在考虑递归,就像在嵌套文件夹中一样。这在文件系统上,但在容器中,文件夹只是虚拟的,并且是 blob 名称的一部分,所以我想这是有道理的。感谢您的帮助!
【解决方案2】:

使用 AzCopy 非常简单。从https://azure.microsoft.com/en-us/documentation/articles/storage-use-azcopy/下载最新版本 在 azcopy 类型中: 在存储帐户中复制 Blob:

AzCopy /Source:https://myaccount.blob.core.windows.net/mycontainer1 /Dest:https://myaccount.blob.core.windows.net/mycontainer2 /SourceKey:key /DestKey:key /Pattern:abc.txt

跨存储帐户复制 blob:

AzCopy /Source:https://sourceaccount.blob.core.windows.net/mycontainer1 /Dest:https://destaccount.blob.core.windows.net/mycontainer2 /SourceKey:key1 /DestKey:key2 /Pattern:abc.txt

从次要区域复制 blob

如果您的存储帐户启用了读取访问异地冗余存储,那么您可以从次要区域复制数据。

将 blob 从辅助帐户复制到主帐户:

AzCopy /Source:https://myaccount1-secondary.blob.core.windows.net/mynewcontainer1 /Dest:https://myaccount2.blob.core.windows.net/mynewcontainer2 /SourceKey:key1 /DestKey:key2 /Pattern:abc.txt

要恢复任何中断的操作,请指定 /Z 选项,或者对于递归操作,请指定 /S

【讨论】:

    猜你喜欢
    • 2019-09-05
    • 2018-03-11
    • 2020-10-05
    • 2013-01-21
    • 2015-06-20
    • 2022-11-02
    • 2019-12-19
    • 2014-08-09
    • 2019-09-22
    相关资源
    最近更新 更多