【发布时间】:2021-08-25 08:22:13
【问题描述】:
我对 azure 比较陌生,尤其是通过使用 Azure CLI,我需要找到一种方法来使用我可以在脚本中使用的 SAS 令牌为客户下载 blob 存储。
到目前为止,我正在使用此命令,但它总是告诉我 blob 不存在,但据我所知,blob 都存在并且命令中的语法是正确的:
az storage blob download -c $containername--account-name $storageaccountname -f aztest --name $filepathwithname -f tempfile --sas-token $SAStoken
这里的 $filepath 看起来像“sql$2021/folder1/folder2/targetfile”,其中 sql$2021 是我在存储帐户容器中看到的第一个文件夹
据我所知,这是正确的语法,并已尝试调整 qoutes 等并从 azure 存储管理器复制文件的位置,但它仍然返回一条错误消息,指出 blob 不存在:
At C:\Users\me\blob_download.ps1:3 char:1
+ az storage blob download -c $container--account-name $accountname -f ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (ERROR: Client-R...ssage></Error>.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
ERROR: The specified blob does not exist. ErrorCode: BlobNotFound
<?xml version="1.0" encoding="utf-8"?><Error><Code>BlobNotFound</Code><Message>The specified blob does not exist.
我遗漏了什么或以其他方式使用不正确,这应该是一个非常简单的命令,但是它给了我很多悲伤。
【问题讨论】:
-
我建议试试这个命令看看它发生了什么:docs.microsoft.com/en-us/cli/azure/storage/…。尝试列出文件夹中的 blob,看看是否找到了 blob,以及是否有与您要查找的内容不同的内容。
-
我在编写此命令之前使用过 azure blob list,但我再次这样做了,并且在使用 list 命令时返回了文件。因此,我已将名称字段直接从该脚本复制到要使用的脚本中,但仍然找不到匹配项。由于在 powershell 脚本中使用了 $ 字符,这可能是格式问题吗?
-
嗯,是的,我认为可以,尽管存储中的文件夹是虚拟文件夹,但在文件夹名称中添加特殊字符是一种不好的做法。我将尝试使用不带任何特殊字符的文件夹名称创建一个测试 blob,然后我将再次尝试使用该 blob 的脚本,看看发生了什么,因为我没有看到任何错误...
标签: azure command-line-interface