如何在 Bash 中通过curl从谷歌驱动器下载大文件?

2024-03-02

我想制作一个非常简单的 bash 脚本,用于通过 google 驱动器下载文件Drive API,所以在这种情况下,谷歌驱动器上有一个大文件,我安装了OAuth 2.0 Playground在我的谷歌驱动器帐户上,然后在Select the Scope盒子,我选择Drive API v3, and https://www.googleapis.com/auth/drive.readonly制作令牌和链接。

点击后Authorize APIs进而Exchange authorization code for tokens。我复制了Access token像下面这样。

#! /bin/bash

read -p 'Enter your id : ' id
read -p 'Enter your new token : ' token
read -p 'Enter your file name : ' file

curl -H "Authorization: Bearer $token" "https://www.googleapis.com/drive/v3/files/$id?alt=media" -o "$file"

但这行不通,有什么想法吗?

例如,我的文件大小是 12G,当我运行代码时,我会将其作为输出,一秒钟后它会再次提示!我在两台具有两个不同IP地址的计算机上检查了它。(我还添加了alt=media to URL)

-bash-3.2# bash mycode.sh

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   166  100   166    0     0     80      0  0:00:02  0:00:02 --:--:--    80

-bash-3.2# 

它创建的文件的内容是这样的

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "downloadQuotaExceeded",
    "message": "The download quota for this file has been exceeded."
   }
  ],
  "code": 403,
  "message": "The download quota for this file has been exceeded."
 }
}

  • 您想要使用带有访问令牌的curl 命令从Google Drive 下载文件。

如果我的理解是正确的,那么这个修改怎么样?

修改后的curl命令:

请添加查询参数alt=media.

curl -H "Authorization: Bearer $token" "https://www.googleapis.com/drive/v3/files/$id?alt=media" -o "$file"

Note:

  • 此修改后的curl命令假设您的访问令牌可用于下载文件。
  • 本次修改可以下载除Google Docs之外的文件。如果您想下载Google Docs,请使用Drive API的Files:导出方法。Ref https://developers.google.com/drive/api/v3/manage-downloads

参考:

  • 下载文件 https://developers.google.com/drive/api/v3/manage-downloads

如果我误解了你的问题并且这不是你想要的方向,我很抱歉。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Bash 中通过curl从谷歌驱动器下载大文件? 的相关文章

  • 为什么我不能将 sed 的输出重定向到文件

    我正在尝试运行以下命令 someprogram tee dev tty sed s 2 gt output file 但当我去查看时 该文件始终是空白的 如果我删除 gt output file从命令末尾 我可以看到 sed 的输出 没有任
  • 如果浏览器关闭,GoogleWebAuthorizationBroker.AuthorizeAsync() 会挂起

    我正在编写一个 C 桌面应用程序 可以将其输出复制到用户的 Google Drive 但是 当我尝试使用 GoogleWebAuthorizationBroker AuthorizeAsync 授权访问 Google 时 如果用户关闭浏览器
  • 使用带有curl 的内部字段分隔符

    当我做 ls IFS l 我得到了我期望的输出 当我做 curl IFShttp www google com 我不 我是否误解了内部字段分隔符 如何在不使用任何空格字符的情况下运行curl 命令 您需要将变量放在大括号内 否则 shell
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • 从 csv 文件中删除特定列,保持输出上的相同结构[重复]

    这个问题在这里已经有答案了 我想删除第 3 列并在输出文件中保留相同的结构 输入文件 12 10 10 10 10 1 12 23 1 45 6 7 11 2 33 45 1 2 1 2 34 5 6 I tried awk F 3 fil
  • 仅打印“docker-container ls -la”输出中的“Names”列

    发出时docker container ls la命令 输出如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox tail f dev
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • 如何制作一个 bash 脚本来同时创建 40 个程序实例?

    我是新来的bash and Linux 我编写了一个程序 我想创建多个同时实例 现在 我通过打开 10 个新终端 然后运行该程序 10 次 我运行的命令是php home calculatedata php 使用 bash 脚本执行此操作的
  • 将相对符号链接转换为绝对符号链接

    如何在 bash 中递归地将相对符号链接转换为绝对符号链接 ln sf readlink f link link
  • bash 行长度限制从何而来?

    在运行 Bash 4 4 19 标准安装 的 Solaris 11 上 输入行似乎有 256 个字符的限制 我想了解这个限制从何而来 我浏览了手册页 但没有找到任何解决此问题的内容 仅当未使用 readline 库时才会发生这种情况 在下面
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • OSX bash 最小化窗口

    在 Mac 中并使用 bash shell 我想执行一个包含单个命令 启动 Jupyter Lab 的文件并立即最小化终端窗口 有没有办法在不安装第三方软件的情况下做到这一点 是的 只需使用osascript https ss64 com
  • 警告:无法更改每个人的权限:

    当运行 Java 快速入门示例时https developers google com drive web quickstart java hl hu https developers google com drive web quicks
  • 如何在 Linux shell 中将十六进制转换为 ASCII 字符?

    假设我有一个字符串5a 这是 ASCII 字母的十六进制表示Z 我需要找到一个 Linux shell 命令 它将接受一个十六进制字符串并输出该十六进制字符串代表的 ASCII 字符 所以如果我这样做 echo 5a command im
  • 获取变量的名称作为输入并使用该名称更改变量

    我从脚本用户那里获取变量的名称作为第一个参数 并将该变量的值回显到控制台 bin bash variablename 1 echo The value of variablename is variablename 这太棒了 我无法开始工作
  • 如何从 bash 数组中删除元素而不展平数组

    我想创建一个采用 bash 数组的函数 如下所示 a element zero element one element two 并删除一个元素 如 元素一 并留下一个数组 如下所示 a element zero element two 这样
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • 使用 su 和 Expect 脚本登录用户时遇到问题

    我正在为一个班级制作一个网站 您可以使用用户名和密码登录 然后它会将您带到一个显示您在班级中的成绩的页面 该网站正在运行bash脚本 https github com jduga002 rapache 并将托管在用户已有用户名和密码登录的计
  • 查找哪个程序运行另一个程序

    我有一个 NAS 运行在 Redhat Linux 的有限版本上 我按照指示破解了它 这样我就可以访问 shell 这很有帮助 我还做了一些修改 其他人也做过修改 除了一个问题之外 它们似乎都工作得很好 不知何故 每隔 22 天 系统就会关

随机推荐

  • ModuleNotFoundError:没有名为“word2number”的模块错误

    使用命令安装 word2number 时 from word2number import w2n 我在使用 Google Colab 时收到此错误 ModuleNotFoundError 没有名为 word2number 的模块错误 我可以
  • 将 Azure SDK 从 2.4 升级到 2.6 后生成错误

    我刚刚使用项目属性 gt 应用程序下的升级功能将我的 Web 角色项目 和解决方案 从 Azure SDK 2 4 升级到 Azure SDK 2 6 当我构建应用程序时 一切正常 但是当我尝试运行它 并启动 Azure 模拟器等 时 如果
  • 带有 envmap 的 Aframe gltf-model 演示

    在aframe中加载GLTF 模型非常方便 但没有发现包含envmap纹理的案例 我希望官方能提供与三位官方相同的案例 pmremGenerator fromEquirectangular texture 函数用于使gltf模型产生真实的反
  • Amazon S3 - 使用 Java API 批量文件上传?

    我们希望开始使用 S3 来满足我们的一些存储需求 并且我正在寻找一种方法来执行 N 个文件的批量上传 我已经使用 Java API 编写了代码来执行单个文件上传 但是有没有办法提供要传递到 S3 存储桶的文件列表 我确实看过以下问题是否可以
  • 如何防止 css 转换为内联 css

    我正在使用 jquery 在按下按钮时修改 div 元素的 css 我注意到 css 内联到 HTML 中 如何防止样式内联 这些样式标签出现在渲染时 链接您的stylesheet in head
  • Eclipse 对于 g++ 不返回的代码返回错误

    构建简单的代码 示例如下 在 eclipse 上返回错误 而命令行中的 g 不会返回错误 eclipse 和 g 都输出可执行文件 其行为相同 并且结果符合我的期望 当代码不像我所展示的示例那样简单时 这会很痛苦 任何想法表示赞赏 环境 E
  • 如何拆分专有名称?

    我有一份来自 AD 的人员及其 DN 列表 我无法直接访问该 AD 他们的 DN 格式为 DNList CN Bob Dylan OU Users OU Dept OU Agency OU NorthState DC myworld DC
  • 检查列表中是否存在值为 x 的namedtuple

    我想查看列表中是否存在命名元组 类似于 numbers 1 2 3 4 5 if 1 in numbers do stuff 有没有Pythonic 或没有 的方法来做到这一点 就像是 namedtuples namedtuple 1 na
  • NSURL 中的 CGImage 有效,但 UIImage 中无效

    我在对图像应用滤镜时遇到一些问题 使用 CIImage imageWithContentsOfURL 时 以下代码完美运行 NSInteger filterIndex UITapGestureRecognizer sender view t
  • 更改画布中像素的颜色、Tkinter、Python

    有人知道是否可以在不使用 un 对象的情况下更改画布中像素的颜色 因此无需使用类似的东西canvas create oval or canvas create rectangle 除了创建某种 1x1 像素对象之外 没有其他方法可以为像素着
  • 错误:在初始化尝试调用方法“值”之前无法调用滑块上的方法

    我写了类似下面的东西 id为 PLUS I的div的onclick 我收到以下错误 cannot call methods on slider prior to initialization attempted to call method
  • 使用 mpi4py 接收多个发送命令

    如何修改以下代码 改编自http materials jeremybejarano com MPIwithPython pointToPoint html http materials jeremybejarano com MPIwithP
  • matlab中传递和保存匿名函数

    我想要一个函数 例如 一个 fit 函数 返回一个匿名函数 通常存储在struct 我可以保存并稍后使用 然而 路过 func倾向于传递函数指针而不是函数本身 是一个inline函数是做到这一点的唯一方法吗 我想避免inline因为它非常慢
  • Django 选择字段

    我正在尝试解决以下问题 我的网页只能看到版主 此页面显示的字段 用户注册后 用户名 名字 姓氏 电子邮件 状态 相关性等 我需要显示带有此字段的数据库中存储的所有用户信息的表 但其中两个字段有选择 所以我想做出一个选项 版主可以选择另一个选
  • 简单地将 OpenMp Parallel for 转换为 c# Parallel for

    你好 我正在将这个 c openmp 并行转换为 c 并行 但它说 错误 1 并非所有代码路径都返回 lambda 表达式类型的值 System Func
  • 测试pdo的php代码可用吗?

    我想用PDO http php net manual en book pdo php但我不确定我的主机是否已正确设置 我如何在 PHP 中测试它是否已设置并适用于 MySQL php 5 1 始终安装 PDO 您可以使用 phpinfo 检
  • 扩展方法需要将类声明为静态

    为什么扩展方法要求声明类是静态的 这是编译器的要求吗 它在 C 4 规范的语言规范第 10 6 9 节中规定 当方法的第一个参数 包括 this 修饰符 即 方法被认为是一个扩展 方法 扩展方法只能是 以非泛型 非嵌套方式声明 静态类 第一
  • Three.js:有没有办法获取组的边界框

    我可以为 Threejs js 中的组获取 边界框吗 我在 Three js 中有一个对象列表 我将它们全部分组在一个单元中 我想获取组的高度和宽度 所以我尝试使用 Box3 来确定高度和宽度 有什么方法可以获取 Threejs 中对象组的
  • 在 Rails 集成规范中向同一控制器发出两个请求

    我在 Rails 集成测试中使用 rspec 向同一个 url 发出两个请求时遇到问题 it does something do get something status gt any other header lt lt lt lt lt
  • 如何在 Bash 中通过curl从谷歌驱动器下载大文件?

    我想制作一个非常简单的 bash 脚本 用于通过 google 驱动器下载文件Drive API 所以在这种情况下 谷歌驱动器上有一个大文件 我安装了OAuth 2 0 Playground在我的谷歌驱动器帐户上 然后在Select the