You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R读取Google Drive CSV文件报错并返回异常HTML内容问题

直接读取Google Drive CSV文件的解决方案

你遇到的报错本质是请求返回的内容不是CSV文件,是Google Drive的权限验证/访问提示页面的HTML内容,因此read.csv解析时会报不完整行警告,读取结果也不是预期的表格数据。可按以下两种方案解决:


方案1:使用googledrive包读取(推荐,稳定性最高)

你已经在项目依赖中加载了googledrive包,直接使用包的内置方法读取即可,无需手动拼接URL,也不会生成本地临时文件:

  1. 首先配置无交互授权,避免shiny运行时弹出浏览器验证框:
    • 本地开发环境先运行一次drive_auth(),完成浏览器账号授权后,会自动在项目根目录生成.secrets缓存文件夹
    • 在代码开头添加授权配置:
    # 配置授权参数,使用本地缓存的凭证实现无交互验证
    options(gargle_oauth_cache = ".secrets",
            gargle_oauth_email = "你的Google账号绑定邮箱")
    drive_auth()
    
  2. 替换原有的读取代码:
    library(dplyr)
    file_id <- "1Jj6nj1FivQHC7b5yzd3JeFfPwyTHbsGr"
    df <- drive_get(as_id(file_id)) %>% 
      drive_read_string() %>% 
      read.csv(text = .)
    
  3. 部署shiny应用到rsconnect时,记得把.secrets文件夹一同打包上传,避免部署后授权失效。

方案2:公开文件无授权读取方案(适合小体积公开文件)

如果你的CSV文件已经设置为「知道链接的任何人都可查看」,且文件体积小于100M,可以直接用修正后的URL读取,不需要走账号授权:

file_id <- "1Jj6nj1FivQHC7b5yzd3JeFfPwyTHbsGr"
# 新增confirm=t参数跳过Google病毒扫描确认页面
df <- read.csv(sprintf("https://drive.google.com/uc?export=download&id=%s&confirm=t", file_id))

注意事项

  • 两种方案都需要先确认Google Drive中CSV文件的分享权限为「知道链接的任何人可以查看」,权限设置不正确会一直返回权限验证页面
  • 方案2仅支持100M以下的文件,超过体积限制会被Google强制跳转确认页,无法直接解析,必须使用方案1

内容的提问来源于stack exchange,提问作者S44

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:45:09