【问题标题】:Get file from Google Drive via shared link通过共享链接从 Google Drive 获取文件
【发布时间】:2019-01-28 22:40:14
【问题描述】:

我正在制作类似在线日记应用程序的东西,它会从 Google 云端硬盘(通过共享链接)下载“日记文件”一次,如果文件发生更改,则会更新该文件。拜托,谁能给我一些指导如何做到这一点。我已经尝试从驱动器中固定文件,但我真的不明白下一步该怎么做..

【问题讨论】:

  • @noogui ,是的,我找到了某种解决方法。如果“admin user”共享文件给其他用户,他们可以通过文件浏览器选择这个文件,然后你就可以轻松得到我想要的。
  • 你也试过我的回答了吗?我用它们直接下载谷歌文件
  • @noogui ,是的,您的回答也有效。唯一的问题是,用户需要以您的方式知道 FILE_ID(如果它是多个文件,或者它是否会更改),但在其余部分它工作得很好。我会选择它作为正确答案,因为我的解决方法只是使用 Android 标准文件选择器的解决方法。谢谢,你做得很好。

标签: android google-drive-api google-drive-android-api


【解决方案1】:

从 Google 云端硬盘下载文件:

要通过链接下载 Google Drive 文件,试试这个(来自this tutorial):

https://drive.google.com/uc?export=download&id=FILE_ID

只需将 FILE_ID 替换为在云端硬盘 URL 中找到的原始文件 ID。

补充说明:

您可以使用DRIVE REST API下载文件

要下载文件,您需要向文件的资源 URL 发出经过授权的 HTTP GET 请求,并包含查询参数 alt=media。例如:

GET https://www.googleapis.com/drive/v3/files/0B9jNhSvVjoIVM3dKcGRKRmVIOVU?alt=media
Authorization: Bearer ya29.AHESVbXTUv5mHMo3RYfmS1YJonjzzdTOFZwvyOAUVhrs

下载文件需要用户至少具有读取权限。此外,您的应用程序必须获得允许读取文件内容的范围的授权。例如,使用 drive.readonly.metadata 范围的应用程序将无权下载文件内容。具有编辑权限的用户可以通过将 viewersCanCopyContent 字段设置为 true 来限制只读用户的下载。

更新 Google 云端硬盘中的文件

使用 PATCH 向 Google Drive 发出 HTTP 请求。 PATCH method 请求将请求实体中描述的一组更改应用于由 Request-URI 标识的资源。需要注意的是:

  1. 参数
  2. 授权
  3. 请求正文

【讨论】:

  • 如果我只需要将文件下载为公共可共享链接,是否需要使用 DRIVE REST API?
  • @live-love 如果文件权限设置为任何拥有链接的人,则无需 API。
  • @RonenRabinovici 如果没有 API,如果您有可共享的链接,您能否以编程方式下载内容(例如:在 Python 程序中)?
  • @Patrick 是的 - 我有一个 Java 服务器,它使用以下代码完全做到这一点: FileUtils.copyURLToFile(url, uploadFile);我猜一个基本的 https GET 对小文件同样适用。大文件可能需要更复杂的东西。我敢打赌,python 相当于 Java 的 FileUtils.copyURLToFile。
  • @RonenRabinovici 感谢 Ronen!你能举一个你使用的网址的例子吗?假设可分享的链接是drive.google.com/open?id=1RnlQzHf04j8N_ThuS3BtkZ-nyk6F22Hp,那么网址是什么?
猜你喜欢
  • 1970-01-01
  • 2020-07-02
  • 1970-01-01
  • 1970-01-01
  • 2016-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多