加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

使用wget或curl下载具有共享访问签名的Azure Blob

发布时间:2020-12-13 23:52:31 所属栏目:Linux 来源:网络整理
导读:我知道我可以使用Azure CLI来实现这一目标,但我想使用常见的 Linux / Unix命令. 我有一个Azure Blob容器,它是私有的.我们称之为https://my-account.blob.core.windows.net/my-blob-container/my-file.my-extension. 如果我的容器设置为“仅对blob进行公共读
我知道我可以使用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-21u0026amp;si=my-policyu0026amp;sr=bu0026amp;sig=y+2pvIuR9rGQdvm/QKp0xNCWE+1G/ 2IqjHkWMhRcPUA =

如果我将链接复制到浏览器中,文件会自动下载.如果我使用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(“服务器发出错误响应”).

解决方法

没有具体细节,查询很难调试,但……

我可以在容器级别创建一个SAS,允许我读取存储中的文件

wget“https://azurerpkg.blob.core.windows.net/azurer/doggies.jpg?st=2016-06-06T07:56:00Zu0026amp;se=2018-06-07T07:56:00Zu0026amp;sp=rlu0026amp; sv = 2015-04-05& sr = c& sig = nKQz5BcWoUaASBzSW7Hv0TzfMbTFcf0f + 5mMtmTwQ2A =“ – k -O”doggies.jpg“

如果我在blob级别创建一个特定的SAS,我的wget也可以

wget“https://azurerpkg.blob.core.windows.net/azurer/doggies.jpg?st=2016-06-06T07:56:00Zu0026amp;se=2018-06-07T07:56:00Zu0026amp;sp=rlu0026amp; sv = 2015-04-05& sr = b& sig = ntNFXS6fUlHVkiqoqj2rHg1Pw6gSNosnYqj3CQ6GIrg =“ – k -O doggies.jpg

有效的共享访问签名查询字符串需要以下参数的参数:

> st
> se
> sp
> sr
> sig

您的似乎缺少se组件,即失效日期.

由于某些URL编码的性质,您在进行wget调用时必须确保URL包含在语音标记中

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读