r - 使用共享访问签名下载 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
有没有其他人遇到过这个问题?
解决方案
事实证明,它与 SAS 无关。download.file
文件名中有一个空格, Windows 上的默认设置为 a %20
,但 curl 没有。手动对空间进行编码以%20
解决问题。
推荐阅读
- php - 在 Laravel 5 应用程序中将 Redis 配置为缓存接口
- php - Wordpress API - 发布元字段
- javascript - 我怎样才能跟踪一个的下载进度?
- sql - SQL Server 即时将斜杠添加到日期
- r - 将日期的缩写与月份编号分开
- rest - 查找 curl 或任何其他命令以获取属于 nexus 中特定版本的工件的版本号
- javascript - 使用 lodash 获取嵌套值
- graphql - 以正则表达式为变量的 Gatsby graphql
- amazon-web-services - AWS S3 CLI ls 将不带前缀的目录列出到数组中(和 where 子句)
- spring - 如何使用 JPA 将 3 个表连接到一个表中?