【问题标题】:AzCopy blob download throwing errors on local machineAzCopy blob 下载在本地计算机上引发错误
【发布时间】:2016-06-02 10:13:03
【问题描述】:

我在学习如何使用 AzCopy 时正在运行以下命令。

azcopy /Source:https://storeaccountname.blob.core.windows.net/container /Dest:C:\container\ /SourceKey:Key /Pattern:"tdx" /S /V

大多数文件下载某些文件会导致如下错误。我不知道为什么会发生这种情况,想知道是否有人遇到过这种情况并知道原因和解决方法。

[2016/05/31 21:27:13][ERROR] tdx/logs/site-visit/archive/1463557944558/visit-1463557420000: Failed to open file C:\container\tdx\logs\site-visit\archive\1463557944558\visit-1463557420000: Access to the path 'C:\container\tdx\logs\site-visit\archive\1463557944558\visit-1463557420000' is denied..

我的最终目标是在一个存储帐户的容器中创建 Blob 备份到另一个存储帐户的容器。所以我从似乎失败的基础开始。

以下是从 Azure 门户中提取的示例路径中的文件夹名称列表:

storeaccountname > Blob service > container > app-logs > hdfs > logs

application_1461803569410_0008
application_1461803569410_0009
application_1461803569410_0010
application_1461803569410_0011
application_1461803569410_0025
application_1461803569410_0027
application_1461803569410_0029
application_1461803569410_0031
application_1461803569410_0033
application_1461803569410_0035
application_1461803569410_0037
application_1461803569410_0039
application_1461803569410_0041
application_1461803569410_0043
application_1461803569410_0045

每个文件夹的日志中都有一个错误,如下所示:

[2016/05/31 21:29:18.830-05:00][VERBOSE] Transfer FAILED: app-logs/hdfs/logs/application_1461803569410_0008 => app-logs\hdfs\logs\application_1461803569410_0008.
[2016/05/31 21:29:18.834-05:00][ERROR] app-logs/hdfs/logs/application_1461803569410_0008: Failed to open file C:\container\app-logs\hdfs\logs\application_1461803569410_0008: Access to the path 'C:\container\app-logs\hdfs\logs\application_1461803569410_0008' is denied..

文件夹 application_1461803569410_0008 包含两个文件。这两个文件已成功下载。从日志中:

[2016/05/31 21:29:19.041-05:00][VERBOSE] Finished transfer: app-logs/hdfs/logs/application_1461803569410_0008/10.2.0.5_30050 => app-logs\hdfs\logs\application_1461803569410_0008\10.2.0.5_30050
[2016/05/31 21:29:19.084-05:00][VERBOSE] Finished transfer: app-logs/hdfs/logs/application_1461803569410_0008/10.2.0.4_30050 => app-logs\hdfs\logs\application_1461803569410_0008\10.2.0.4_30050

所以问题似乎与复制文件夹有关,这些文件夹本身就是 blob,但我还不能确定。

【问题讨论】:

  • 失败的文件有什么特别之处吗?可能是他们的名字包含一些不允许的字符。此外,如果您打算将容器备份到另一个存储帐户,为什么要先在本地计算机上下载文件?您可以简单地使用 AzCopy 从一个容器复制到另一个容器。
  • @GauravMantri 文件失败并没有什么特别之处。正如我在帖子中提到的,我正在学习如何使用 AzCopy,所以第一步是确定我是否可以下载一个 blob,然后上传一个 blob,然后复制一个 blob,等等。我应该也可以简单地下载,但是那是行不通的。你的意思是?
  • 关于下载/上传只是为了做备份,我想说的是 Azure 支持跨运行服务器端的存储帐户的异步 blob 复制,因此您不必先下载 blob您的本地计算机并重新上传。您可以将该任务委派给 Azure 恕我直言。关于失败的文件,您能否给出实际失败的文件的示例名称?由于失败是由于一些 IO 错误(拒绝访问),我猜测文件路径和名称会发生​​一些奇怪的事情。
  • @GauravMantri 我已经知道从一个存储帐户复制到另一个存储帐户的能力是可能的服务器端。您能欣赏我通过实践简单地了解该工具的工作原理吗?我已经用实际路径更新了帖子中的错误。
  • 我现在明白了。对不起,如果我冒犯了你。我的意图不是那样。我只是假设您不了解异步复制。我的错!回到手头的问题,你能告诉我失败的文件是否没有任何扩展名?

标签: azure


【解决方案1】:

在使用 AzCopy 时有几个已知问题,例如以下会导致错误,

  • 如果存储容器下有两个名为“a”和“a/b”的 blob,则使用 /S 复制该容器下的 blob 将失败。 Windows 将不允许在同一文件夹下创建文件夹名称“a”和文件名称“a”。

请参阅https://blogs.msdn.microsoft.com/windowsazurestorage/2012/12/03/azcopy-uploadingdownloading-files-for-windows-azure-blobs/。向下滚动到底部,查看已知问题的详细信息。

在我的容器 con2 中,执行 Azcopy 下载命令时,有一个名为 abc.pdf 的 文件夹 和一个 file abc.pdf加/S,会提示错误信息。

请检查您的容器是否有与文件同名的文件夹。

【讨论】:

  • 我错过了你强调的那个已知问题。我相信这就是问题所在。但是,我没有您所说的重复文件,而是到处都有重复的文件夹。每个文件夹都有一个与之关联的同名 blob。我在我的 AzCopy 日志中确认只有文件夹会引发错误。那篇文章也有三年多的历史了。我认为这些已知问题现在已经解决了。显然有些不对劲。我想知道为什么有一个同名的文件夹和blob。我没有那样做。
  • 准确地说这不是问题,因为 Windows 对存储本身有一些规则。我不知道为什么你的容器中有同名的文件夹和blob,反正我们找到了根本原因。
  • 虽然我使用的是最新版本的 AzCopy,但对我来说也是如此。我猜它不会在未来的版本中“修复”。
猜你喜欢
  • 2021-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-30
  • 2018-09-23
  • 2016-10-13
  • 2019-07-03
相关资源
最近更新 更多