小编num*_*tus的帖子

使用wget或curl下载具有共享访问签名的Azure 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’
Run Code Online (Sandbox Code Playgroud)

如果我的容器设置为"无公共访问",并且我创建了一个名为" 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 …
Run Code Online (Sandbox Code Playgroud)

curl wget azure-storage-blobs

5
推荐指数
1
解决办法
6636
查看次数

标签 统计

azure-storage-blobs ×1

curl ×1

wget ×1