Shiny App使用googlesheets4时出现sheets.googleapis.com解析报错如何解决
报错原因与解决方法
报错信息:
Error in curl::curl_fetch_memory: could not resolve host: sheets.googleapis.com
该报错属于服务器网络层面的DNS解析故障,和Shiny应用代码、googlesheets4包本身无关,可按以下步骤排查修复:
检查服务器DNS配置
登录部署服务器的终端执行命令测试解析:nslookup sheets.googleapis.com
如果返回解析失败结果,修改服务器DNS配置,可先临时添加谷歌公共DNS测试:
编辑/etc/resolv.conf文件,新增两行配置:nameserver 8.8.8.8 nameserver 8.8.4.4测试解析正常后,将DNS配置写入网卡的永久配置文件,避免服务器重启后配置失效。
排查出口网络访问限制
若DNS解析正常仍报错,确认服务器是否有安全组、防火墙规则限制443端口对外访问,或是服务器所处网络需要配置代理才能访问谷歌服务。
如需配置代理,可直接在Shiny应用代码开头添加环境变量配置:Sys.setenv(https_proxy = "http://你的代理地址:端口") Sys.setenv(http_proxy = "http://你的代理地址:端口")如果使用Shiny Server部署多应用,也可以直接在Shiny Server的启动配置中添加全局代理环境变量,无需每个应用单独配置。
确认googlesheets4授权方式正确
网络连通性修复完成后,建议使用服务账号密钥完成googlesheets4的非交互式授权,避免交互式OAuth授权的凭证过期问题,参考代码:library(googlesheets4) # 替换为你的服务账号密钥文件路径 gs4_auth(path = "./service-account-key.json")
内容的提问来源于stack exchange,提问作者naba
相关产品推荐
相关产品推荐


