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

如何在Ansible角色中从Google Drive下载公开共享文件?

解决Ansible从Google Drive下载公开归档文件的问题

不用非得把文件转存到其他平台,这里有几个直接处理Google Drive公开链接的方案,亲测可行:

方案1:改造Google Drive链接为直接下载格式

Google Drive的公开文件可以通过修改URL来获取直接下载链接:

  • 从原链接中提取文件ID:你的链接里的ID是 0BxpbZGYVZsEeSFdrUnBNMUp1YzQ
  • 构造直接下载URL:https://drive.google.com/uc?id=你的文件ID&export=download

然后用Ansible的get_url模块直接下载,示例Playbook代码:

- name: 从Google Drive下载公开归档文件
  get_url:
    url: "https://drive.google.com/uc?id=0BxpbZGYVZsEeSFdrUnBNMUp1YzQ&export=download"
    dest: "/tmp/your_archive.tar.gz"
    validate_certs: no  # 如果遇到证书验证问题可以加上
    follow_redirects: all

方案2:用curl命令配合shell模块下载

如果get_url处理跳转有问题,可以直接用curl命令来处理Google Drive的重定向,示例:

- name: 使用curl下载Google Drive文件
  shell: |
    curl -L -o /tmp/your_archive.tar.gz "https://drive.google.com/uc?id=0BxpbZGYVZsEeSFdrUnBNMUp1YzQ&export=download"
  args:
    creates: /tmp/your_archive.tar.gz  # 避免重复下载

方案3:用gdown工具(更稳定的第三方工具)

gdown是一个专门用于下载Google Drive文件的Python工具,处理各种链接格式都很靠谱:

  1. 先安装gdown:
- name: 安装gdown工具
  pip:
    name: gdown
    state: present
  1. 用gdown下载文件,直接用原共享链接就行:
- name: 用gdown下载Google Drive文件
  command: gdown "https://drive.google.com/file/d/0BxpbZGYVZsEeSFdrUnBNMUp1YzQ/view?usp=sharing"
  args:
    chdir: /tmp  # 指定下载目录
    creates: /tmp/your_archive.tar.gz  # 按需替换成你的归档文件名

这三个方案都不需要转存文件,直接就能在Ansible里完成下载。如果只是简单的公开文件,方案1最省事;如果遇到复杂的跳转或者文件名识别问题,方案3更可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:57:33