如何为 httr::GET 配置参数提供多个配置值

How to provide multiple config values to httr::GET config argument

对于 Azure Blob 存储,我需要提供 authentication values,以及一个名为 x-ms-date 的附加 header。

设置

library(httr)
container<-"https://preconstuff.blob.core.windows.net/?comp=list"
sak<-"Q8HvUVJLBJK+wkrIEG6LlsfFo19iDjneTwJxX/KXSnUCtTjgyyhYnH/5azeqa1bluGD94EcPcSRyBy2W2A/fHQ=="
login<-authenticate(user = "preconstuff",password = sak)
extras<-add_headers(`x-ms-date`=Sys.time())

问题

如果我 运行 content(GET(container,config = login )) 它说没有提供日期 header。

在使用 objects loginextras 方面,将它们作为列表似乎不起作用。

如果我更改 extras 以包含身份验证组件(从 authenticate 函数中获取 userpwd header 构造)

extras<-add_headers(httpauth =1, userpwd = paste0("preconstuff:", sak), 
                    `x-ms-date`=as.character(Sys.time()))

然后 运行 content(GET(container,config = extras )),我收到“ResourceNotFound”提示它无法识别我的凭据。

如何正确传入多个值?

传递给 GET() 的所有未命名参数都传递给 config。这意味着你可以做到

content( GET(container, login, extras) )

或者,他的配置选项基本上只是列表,您可以使用 c() 组合位。例如

content( GET(container, config = c(login, extras)) )