hor*_*ioj 6 google-api google-drive-api
Google Drive API v2 到 v3迁移指南指出:
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
对于谷歌应用程序文件,没有(甚至不是私有的,就像 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,而且它的寿命也不是短暂的。这很好而且很有用。
使用原始 API 调用(如(使用强制 access_token))构建链接/drive/v3/files/FILEID/export将是一个足够接近的解决方法(它是临时的和公共的,无论如何与以前不同)。然而,命名问题使其无效。
在 v2 中,常规文件具有WebContentLink.google apps 文件具有exportLinks. 在 v3 中exportLinks已经消失了,我没有看到任何合适的替代品。
我认为你过于强调“方法”这个词。
仍然有一个导出文件的链接,它是https://www.googleapis.com/drive/v3/files/fileIdxxxxx/export&mimeType=xxxxx/xxxxx. 确保对 mime 类型进行 URL 编码。
例如
https://www.googleapis.com/drive/v3/files/1fGBQ81haNU_nEiC5GITZD3bxT0ppL2LHg-C0ubD4Q_s/export?mimeType=text/csv&access_token=ya29.Gmo0BMvO-pVEPKsiD9j4D-NZVGE91MChRvwOcBSg3cTHt5uAClf-jFxcovQScbO2QQhwHS95eSGW1eQQcK5G1UQ6oI4BFEJJkntEBkgriZ14GbHuvpDL7LT2pKA--WiPuNoDDIuZMm5lWtlr
Run Code Online (Sandbox Code Playgroud)
这些链接构成 API 的一部分,因此期望您已经编写了一个发送经过身份验证的请求并处理响应数据的客户端。这解释了为什么如果您只是将链接粘贴到没有 的浏览器中access_token,则会失败。它还解释了为什么文件名是export,即。您的客户端并不打算使用文件名,而是应该以流的形式接收数据。这个SO答案更详细地讨论了这种情况如何设置从浏览器下载的文件的名称?
| 归档时间: |
|
| 查看次数: |
7951 次 |
| 最近记录: |