【发布时间】:2023-03-28 03:38:01
【问题描述】:
Google Drive API v2 到 v3 migration guide 说:
exportLinks 字段已从文件中删除。要导出 Google 文档,请改用 files.export 方法。
我不想立即导出(下载)文件。 “files.export”实际上会下载文件。我想要一个链接来下载文件,稍后。这在 v2 中可以通过 exportLinks 实现。
如何在 v3 中实现相同的功能?如果不可能,为什么要删除这个有用的功能?
此外,(与上述类似的问题)downloadUrl 也被删除,建议的替代方法(“files.get with ?alt=media”)下载文件而不是提供下载链接。这意味着在 v3 中无法获取文件的公共短期 URL?
编辑:
在 v3 中没有办法获取文件的公共短期 URL?
对于常规文件,显然是的。
这似乎工作正常(一个公共的短期链接到具有正确名称和内容的文件):
https://www.googleapis.com/drive/v3/files/ID?alt=media&access_token=TOKEN
对于 google 应用程序文件,没有(甚至不是私有的,因为 v2 exportLinks 曾经是)。
https://www.googleapis.com/drive/v3/files/ID/exportmimeType=TYPEv&access_token=TOKEN
与常规文件类似,此 URL 是指向文件内容的短暂链接,但缺少正确的名称。
顺便说一句,我看到 API 的行为不一致:/drive/v3/files/FILEID 提供了正确的文件名,但 /drive/v3/files/FILEID/export 没有。
我认为 API 本身应该设置正确的 Content-Disposition,就像它在发出 /drive/v3/files/FILEID 调用时所做的那样。
此文件命名问题使 v3 中缺少 ExportLinks 的解决方法无效。
v2 ExportLinks 允许我链接文件(这与立即获取其内容不同)。任何登录并具有适当权限的人都可以访问它,并且该链接不需要任何 access_token,而且它不是短暂的。很好用。
使用像/drive/v3/files/FILEID/export 这样的原始 API 调用(带有强制 access_token)建立一个链接将是一个足够接近的解决方法(它是临时的和公共的,无论如何都不一样)。但是,命名问题使其无效。
在 v2 中,常规文件具有 WebContentLink,而 google 应用程序文件具有 exportLinks。在 v3 中,exportLinks 消失了,我没有看到任何合适的替代方案。
【问题讨论】:
-
你能检查一下这个link
-
@MuratGüner,“files.export”将下载文件。我想要一个下载文件的链接,因为它曾经在 v2 中。下载文件的 url(您可以在 v2 中拥有的内容)和文件内容本身(您在 v3 中使用 files.export 获得的内容)不是一回事。
-
迁移中的此声明“exportLinks 字段已从文件中删除。要导出 Google 文档,请改用 files.export 方法。”这意味着唯一的方法是 files.export 方法。
-
2019 年 1 月初,我注意到 Drive API v3 中添加了
exportLinks。您可以在the official document 看到它。这些链接似乎与 v2 的链接相同。如果要找回exportLinks,请将其添加到fields。如果这不是您想要的,我很抱歉。 -
非常感谢您发布这个问题!这是我实现 v3 Drive 应用程序所需的最后一点信息。
标签: google-api google-drive-api