如何通过curl或wget下载公开可访问的Google Drive文件?
用curl/wget下载公开Google Drive文件的方法
当然可以无需登录Google账号下载公开可访问的Google Drive文件,但要根据文件大小调整命令,具体如下:
1. 小文件(直接下载)
如果文件较小(一般几十MB以内),你可以直接使用curl或wget结合你提供的uc链接,注意加上跳转参数避免下载失败:
curl命令:
curl -L -O "https://drive.google.com/uc?export=download&id=1Wb2NfKTQr_dLoFJH0GfM0cx-t4r07IVl"
-L:自动跟随页面跳转-O:保留原文件名保存
wget命令:
wget --content-disposition "https://drive.google.com/uc?export=download&id=1Wb2NfKTQr_dLoFJH0GfM0cx-t4r07IVl"
--content-disposition:让wget识别Google Drive返回的文件名,避免保存成乱码或默认名称
2. 大文件(处理确认页面)
当文件较大时,Google Drive会弹出“无法扫描病毒”的确认页面,这时候需要先提取确认token再下载:
分步curl命令:
# 第一步:获取cookie和包含确认token的页面 curl -c /tmp/drive_cookies.txt "https://drive.google.com/uc?export=download&id=1Wb2NfKTQr_dLoFJH0GfM0cx-t4r07IVl" > /tmp/drive_temp.html # 第二步:提取token并完成下载 curl -L -b /tmp/drive_cookies.txt "https://drive.google.com/uc?export=download&confirm=$(grep -o 'confirm=[^&]*' /tmp/drive_temp.html | sed 's/confirm=//')&id=1Wb2NfKTQr_dLoFJH0GfM0cx-t4r07IVl" -O myfile.xls
关键注意事项:
- 确保目标文件是公开可访问的:文件所有者需将权限设置为“知道链接的任何人都可以查看/下载”,私有文件即使有链接也无法匿名下载
- 命令中的
id参数可替换为你实际的文件ID(就是你提供的1Wb2NfKTQr_dLoFJH0GfM0cx-t4r07IVl这类字符串) - 下载完成后可以删除临时文件
/tmp/drive_cookies.txt和/tmp/drive_temp.html
内容的提问来源于stack exchange,提问作者David542




