【发布时间】:2016-08-23 23:10:47
【问题描述】:
我知道我可以使用 Azure CLI 来完成此操作,但我想使用常见的 Linux/Unix 命令。
我有一个私有的 Azure Blob 容器。我们称之为https://my-account.blob.core.windows.net/my-blob-container/my-file.my-extension。
如果我的容器设置为“仅限 Blob 的公共读取访问”,那么一切正常。
$ wget https://my-account.blob.core.windows.net/my-blob-container/my-file.my-extension
--2016-04-28 16:11:15-- https://my-account.blob.core.windows.net/my-blob-container/my-file.my-extension
Resolving my-account.blob.core.windows.net (my-account.blob.core.windows.net)... 4.11.2.14
Connecting to my-account.blob.core.windows.net (my-account.blob.core.windows.net)|4.11.2.14|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 21682 (21K) [application/octet-stream]
Saving to: ‘my-file.my-extension’
如果我的容器设置为“无公共访问权限”,并且我创建了一个名为 my-policy 的访问策略,并使用读/写/删除/列表一年,我会得到以下直接链接:https://my-account.blob.core.windows.net/my-blob-container/my-file.my-extension?sv=2015-02-21&si=my-policy&sr=b&sig=y%2B2pvIuR9rGQdvm%2FQKp0xNCWE%2B1G%2F2IqjHkWMhRcPUA%3D
如果我将链接复制到浏览器中,文件会自动下载。如果我使用wget,我会收到 404 错误:
$ wget https://my-account.blob.core.windows.net/my-blob-container/my-file.my-extension?sv=2015-02-21&si=my-policy&sr=b&sig=y%2B2pvIuR9rGQdvm%2FQKp0xNCWE%2B1G%2F2IqjHkWMhRcPUA%3D
[4] 14106
[5] 14107
[6] 14108
[2] Done si=my-policy
[3] Done sr=b
$ --2016-04-29 01:25:54-- https://my-account.blob.core.windows.net/my-blob-container/my-file.my-extension?sv=2015-02-21
Resolving my-account.blob.core.windows.net (my-account.blob.core.windows.net)... 4.11.2.14
Connecting to my-account.blob.core.windows.net (my-account.blob.core.windows.net)|4.11.2.14|:443... connected.
HTTP request sent, awaiting response... 404 The specified resource does not exist.
2016-04-29 01:25:54 ERROR 404: The specified resource does not exist..
wget 返回 Exit Stats 8(“服务器发出错误响应”)。
【问题讨论】:
-
嗨,我的回答有帮助吗?
-
感谢您的回答@step-locke。我已尝试按照您的建议添加
st、se和sp,但错误消息是相同的(HTTP/1.1 404 The specified resource does not exist.)。它仍然让我感到困惑,因为网络浏览器可以轻松下载具有完全相同 URL 的文件。 -
我添加了一个更新。看起来我们的 cmd 行之间的关键差异导致了错误 - 你没有引用 url。当我不引用 URL 时,它也会生成 404 错误
-
你是对的;只要引用了 URL,一切正常。感谢您的帮助!
-
有时您只需将地址放在引号中(“https:// ....”)
标签: curl wget azure-blob-storage