下面内容是大模型生成的,目前试了下第一种方法可行,直接 curl 会失败。

假设有个文件 data.zip 在某个仓库,建议先共享到自己仓库里。


使用 gdown 下载 data.zip

gdown 是一个Python包,因此您需要确保服务器上安装了Python和pip

步骤 1: 获取 data.zip 的文件 ID

  1. 在您的浏览器中打开 Google Drive。
  2. 找到 data.zip 文件。
  3. 右键点击该文件,选择“获取分享链接”(Get shareable link)。
  4. 确保分享设置为“任何知道此链接的人都可以查看”(Anyone with the link can view)。如果不是,请更改设置。
  5. 从分享链接中提取文件 ID。分享链接通常看起来像这样:
    https://drive.google.com/file/d/YOUR_FILE_ID/view?usp=sharingYOUR_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: 指定下载到服务器上的文件名。

替代方法:使用 wgetcurl (不推荐用于所有情况)

对于某些较小的、公开共享的Google Drive文件,您可能可以使用 wgetcurl。但是,这种方法对于大文件或需要认证的文件通常会遇到问题,因为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的特定下载机制时。wgetcurl 对于Google Drive文件来说,通常不是最佳选择。

希望这能帮到您!