首页 > 解决方案 > 使用共享访问签名下载 Azure blob 失败并出现 curl 或 httr

问题描述

curl::curl_download在使用and之前,我已经设法从 blob 存储下载httr::GET,但这次它失败并出现 400 错误。但是,如果我使用 base R's 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

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

标签: rcurlazure-blob-storagercurlhttr

解决方案


事实证明,它与 SAS 无关。download.file文件名中有一个空格, Windows 上的默认设置为 a %20,但 curl 没有。手动对空间进行编码以%20解决问题。


推荐阅读