使用共享访问签名下载Azure blob会因curl或httr

时间:2018-05-21 04:30:13

标签: r curl azure-storage-blobs rcurl httr

在使用curl::curl_downloadhttr::GET之前,我已设法从blob存储中下载,但这次失败时出现400错误。但是,如果我使用基础R的download.file,它就可以工作。

下载URL是(逐字复制,但省略了文件详细信息和实际签名):

https://{account}.blob.core.windows.net/{store}/{file.zip}?sp=r&st=2018-05-19T00:00:00Z&se=2018-05-31T00:00:00Z&spr=https&sv=2017-07-29&sig={...}&sr=b

其中SAS部分是

sp=r&st=2018-05-19T00:00:00Z&se=2018-05-31T00:00:00Z&spr=https&sv=2017-07-29&sig={...}&sr=b

还有其他人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:1)

事实证明,它与SAS无关。文件名中有一个空格,Windows上的默认download.file变为%20,但curl不会。手动将空格编码为%20可以解决问题。