下面内容是大模型生成的,目前试了下第一种方法可行,直接 curl 会失败。
假设有个文件 data.zip 在某个仓库,建议先共享到自己仓库里。
使用 gdown
下载 data.zip
gdown
是一个Python包,因此您需要确保服务器上安装了Python和pip
。
步骤 1: 获取 data.zip
的文件 ID
- 在您的浏览器中打开 Google Drive。
- 找到
data.zip
文件。 - 右键点击该文件,选择“获取分享链接”(Get shareable link)。
- 确保分享设置为“任何知道此链接的人都可以查看”(Anyone with the link can view)。如果不是,请更改设置。
- 从分享链接中提取文件 ID。分享链接通常看起来像这样:
https://drive.google.com/file/d/YOUR_FILE_ID/view?usp=sharing
YOUR_FILE_ID
就是您需要的文件 ID。
步骤 2: 在服务器上安装 gdown
如果您的服务器上还没有安装 gdown
,请通过 pip
安装:
pip install gdown
# 或者如果您的系统使用 pip3
pip3 install gdown
步骤 3: 使用 gdown
下载文件
有了文件 ID 后,您可以使用 gdown
命令下载文件。将 YOUR_FILE_ID
替换为您在步骤 1 中获取的实际文件 ID,并将 data.zip
替换为您希望下载到服务器的文件名。
gdown --id YOUR_FILE_ID -O data.zip
-
--id YOUR_FILE_ID
: 指定要下载的Google Drive文件ID。 -
-O data.zip
: 指定下载到服务器上的文件名。
替代方法:使用 wget
或 curl
(不推荐用于所有情况)
对于某些较小的、公开共享的Google Drive文件,您可能可以使用 wget
或 curl
。但是,这种方法对于大文件或需要认证的文件通常会遇到问题,因为Google Drive会对下载进行重定向或需要确认。
步骤 1: 获取文件 ID (同上)
步骤 2: 构建下载链接并使用 wget
对于小文件 (通常小于100MB),可以尝试这种格式:
wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=YOUR_FILE_ID' -O data.zip
对于大文件,wget
需要处理一个确认步骤。这个命令会复杂得多,并且可能不可靠:
wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=YOUR_FILE_ID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=YOUR_FILE_ID" -O data.zip && rm -rf /tmp/cookies.txt
- 请确保将
YOUR_FILE_ID
替换为您的文件 ID。 -
--no-check-certificate
是为了跳过SSL证书验证,如果您不确定服务器环境,这可能有用,但通常建议在安全的环境下使用。
总结
强烈建议您使用 gdown
工具来下载Google Drive文件,因为它更稳定、更方便,尤其是在处理Google Drive的特定下载机制时。wget
和 curl
对于Google Drive文件来说,通常不是最佳选择。
希望这能帮到您!