使用 Google Drive API 从 Google Drive 直接下载

2024-04-18

我的桌面应用程序是用 java 编写的,尝试从 Google Drive 下载公共文件。据我发现,它可以通过使用文件来实现webContentLink(这是为了能够在未经用户授权的情况下下载公共文件)。

因此,下面的代码适用于小文件:

String webContentLink = aFile.getWebContentLink();
InputStream in = new URL(webContentLink).openStream();

但它不适用于大文件,因为在这种情况下文件无法直接通过下载webContentLink未经用户确认并发出谷歌病毒扫描警告。看一个例子:.

所以我的问题是如何在未经用户授权的情况下从 Google Drive 获取公共文件的内容?


2015 年 12 月 8 日更新根据谷歌支持 https://support.google.com/drive/answer/2881970?hl=en使用

googledrive.com/host/ID

该方法将于 2016 年 8 月 31 日关闭。


我刚刚遇到这个问题。

The trick就是像网络主机一样对待您的 Google Drive 文件夹。

2015年4月1日更新

Google 云端硬盘已发生变化,有一种简单的方法可以直接链接到您的云端硬盘。我在下面留下了以前的答案以供参考,但这里有一个更新的答案。

  1. 在 Google 云端硬盘中创建一个公共文件夹。

  2. Share this drive publicly.

    enter image description here

  3. Get your Folder UUID from the address bar when you're in that folder

    enter image description here
  4. 将该 UUID 放入此 URL 中

    https://googledrive.com/host/<folder UUID>/
  5. 将文件名添加到文件所在的位置。

    https://googledrive.com/host/<folder UUID>/<file name>

Which is intended functionality by Google https://googledrive.com/host/0B716ywBKT84AMXBENXlnYmJISlE/GoogleDriveHosting.html
new Google Drive Link https://i.stack.imgur.com/ArDpc.png.

您所要做的就是简单地获取host公共共享云端硬盘文件夹的 URL。为此,您可以上传纯 HTML 文件并preview它在 Google 云端硬盘中查找您的主机 URL。

步骤如下:

  1. 在 Google 云端硬盘中创建一个文件夹。

  2. Share this drive publicly.

    enter image description here

  3. Upload a simple HTML file. Add any additional files (subfolders ok)

    enter image description here

  4. Open and "preview" the HTML file in Google Drive

    enter image description here

  5. Get the URL address for this folder

    enter image description here

  6. Create a direct link URL from your URL folder base

    enter image description here

  7. 此 URL 应允许直接下载大文件。

[edit]

我忘了补充。如果您使用子文件夹来组织文件,则只需使用您在 URL 层次结构中所期望的文件夹名称即可。

https://googledrive.com/host/<your public folders id string>/images/my-image.png


我想要做什么

我使用 Virtual Box for Vagrant 创建了一个自定义 Debian 映像。我想与同事共享这个“.box”文件,以便他们可以将直接链接放入他们的 Vagrantfile 中。

最后,我需要一个指向实际文件的直接链接。

谷歌云端硬盘问题

如果您将文件权限设置为公开可用,并使用类似以下内容创建/生成直接访问链接gdocs2direct https://sites.google.com/site/gdocs2direct/工具或自己制作链接:

https://docs.google.com/uc?export=download&id=<your file id>

您将得到一个基于 cookie 的验证码,并提示“Google 无法扫描此文件”提示,这不适用于以下情况:wget或 Vagrantfile 配置。

它生成的代码是附加 GET 查询变量的简单代码...&confirm=###到字符串,但它是每个用户特定的,因此您不能为其他人复制/粘贴该查询变量。

但如果你使用上面的“网页托管”方法,你就可以绕过这个提示。

我希望这有帮助!

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

使用 Google Drive API 从 Google Drive 直接下载 的相关文章

随机推荐

  • 使用 onSubmit 提交表单

    My form onSubmit正在呼叫 onsubmit validate this return false validate 如下 function validate obj ajax url ajax validate check
  • logback 支持 log4j 附加程序吗?

    为 log4j 创建的自定义 Appender 扩展 AppenderSkeleton 可以与 new 一起使用吗logback框架 我知道logback带有自己的一组类似于 log4j 的附加程序 但这是否可以重用现有的附加程序 如何 以
  • signal(SIGCHLD, SIG_DFL); 是什么意思?意思是?

    我不处理SIGCHLD在我的代码中 我的进程仍然在终止后立即被删除 我希望它成为僵尸进程 如果我设置SIGCHLD to SIG DFL那么 它会起作用吗 我该如何设置SIGCHLD to SIG DFL 我希望进程成为僵尸 这样我就可以在
  • 尝试调用虚拟方法“int java.lang.String.hashCode()”

    我正在尝试使用 Volley Library 将图像从 URL 加载到 gridview 中 为此我正在关注this http www 101apps co za index php articles using volley to dow
  • 使用 javascript 的 ASP.Net MVC 3.0 Ajax.ActionLink 动态对象路由值

    0 项目 在我看来 我有一个隐藏字段 其中有一个UserID 该用户 ID 是根据操作生成的 因此事先不会知道 一旦这个隐藏字段有了值 我想使用该值作为操作链接路由值 我可以用 jquery 选择器来做到这一点吗 我的隐藏字段是
  • 我可以使用远程数据库服务器配置 ssl

    我想知道是否可以在我的应用程序和远程数据库服务器之间配置 ssl Weblogic 服务器上的 Oracle 数据库和 Web 应用程序 Thanks 是的 这是可能的 我不确定如何配置服务器 我只从客户端的角度使用它 但是可以按照链接中的
  • ejabberd 和 Erlang 安装,lager_transform 未定义

    我是 Erlang 新手 我一直在尝试在 EC2 ubuntu 机器上安装 Erlang 和 ejabberd 一切都很顺利 直到我开始编译一些外部模块ejabberd 它开始抛出错误undefined parse transform la
  • 从雅虎财经提取数据时出错

    我正在尝试通过 Pandas 从雅虎财经提取数据 我以前使用过类似的拉力 但在此之前没有遇到任何问题 import pandas as pd import numpy as np import datetime as dt from dat
  • Postgis - ST_within 没有做我想做的事。如何在空心区域中找到一个点?

    请参阅丝网印刷 我在 Postgis 中运行了一个空间查询 以返回地图上某个点所在的选区 区域 该查询使用ST within函数 其中点位于多边形内 正如您从打印中看到的 该点实际上并不在 York Outer 的多边形区域 内 尽管从技术
  • php中如何将多维关联数组转换为一维数组?

    我有一个快速查询如何将多维数组转换为一维数组 teachers array array post id gt John Doe video id gt array Government English array post id gt St
  • 在Android studio中添加外部库

    我想添加外部库https github com foursquare foursquare android oauth https github com foursquare foursquare android oauth到我的 Andr
  • 更改my.ini后MySQL服务无法启动

    我在 Windows 上运行 MySQL 8 0 我对 my ini 做了一些更改 最终找到了它 以更改字符集 愚蠢的是我没有先备份它 并且我使用了记事本 它没有多重撤消功能 现在我明白了 The MySQL Service could n
  • Kivy 中的 HTTPS 请求

    我一直在处理与通过 AWS API Gateway 托管的 API 绑定的 Kivy 应用程序中的 HTTPS 请求 首先 我从Python3迁移到2 然后从requests库迁移到kivy的URLRequest 该应用程序在我的 Linu
  • prawnto 显示新页面时不会中断的表格

    我有数量可变的表 行数可变 我想让它们一个接一个地显示 但如果当前页面不适合表 请将其放在下一页上 然后继续 我已将表格放入事务中 这样如果高度适合当前页面 我可以回滚然后打印它 但如何获取表格高度 我现在有这个代码 pdf transac
  • 将 CSV 导入组织模式属性

    我想将 CSV 导入组织模式 其他人已经询问过如何将 CSV 导入组织模式表 这不是我想做的 我需要将 CSV 导入到组织模式属性 例如 像这样的 CSV Name Tel Mobile Fax John 11111 22222 33333
  • 删除具有重复索引的 pandas 行

    如何删除具有重复索引值的行 在下面的天气数据框中 有时科学家会返回并纠正观察结果 不是通过编辑错误的行 而是通过将重复的行附加到文件末尾 我正在从网络上读取一些自动天气数据 每 5 分钟进行一次观测 并编译成每个气象站的每月文件 解析文件后
  • 使用 ffmpeg 将文件从一种格式转换为另一种格式

    我是新来的ffmpeg我试图找出如何将音频或视频文件从一种格式转换为另一种格式 我不想使用CLI 我只是想知道我是否可以使用ffmpeg作为库并调用函数将文件从一种格式转换为另一种格式 我浏览了文档并找到了函数avcodec encode
  • 如何仅在夹具级别执行“beforeEach”,而不是针对该夹具下的每个测试

    我只想在固定装置级别运行 beforeEach 而不是在该固定装置下的每个测试中运行 fixture Fixture A for Use Case1 beforeEach login test A Test 1 async t gt awa
  • 这是 Matlab 的错误吗?你有同样的问题吗? [复制]

    这个问题在这里已经有答案了 我的Matlab版本是R2012a为什么在Matlab中1 1 0 2不等于0 9 这太糟糕了 gt gt 1 1 0 2 0 9 ans 0 这不是Matlab问题 这是一个浮点问题 在 C 或任何符合以下标准
  • 使用 Google Drive API 从 Google Drive 直接下载

    我的桌面应用程序是用 java 编写的 尝试从 Google Drive 下载公共文件 据我发现 它可以通过使用文件来实现webContentLink 这是为了能够在未经用户授权的情况下下载公共文件 因此 下面的代码适用于小文件 Strin