gpt4 book ai didi

android - 如何使用 Google Drive 将文件从 Linux 传输到 Android

转载 作者:太空狗 更新时间:2023-10-29 14:55:04 26 4
gpt4 key购买 nike

环境:

我有一个由 Android 客户端和 Linux 服务器组成的系统。文件(jpeg 图像)通过 Google 驱动器 OK 从 Android 客户端传输到 Linux 服务器。

  • 客户端使用 Drive API 将文件上传到 Google Drive 上的 ServerUploads 文件夹
  • 客户端通过 GCM (Google Cloud Messaging) 将文件通知服务器
  • Server 上的 ServiceAccount 通过 REST API 读取文件

我的传输工作正常。

稍后服务器需要根据搜索条件、位置、 View 区域等将文件 (jpeg) 发送给其他客户端。因此我尝试逆向流程将 jpeg 文件传输给客户端。

  • Linux 服务器上的服务帐户将文件上传到 Google Drive 上的 ClientDownload 文件夹
  • 服务器通过 GCM 通知客户端该文件
  • 客户端尝试通过 Drive API 下载文件但由于保护而失败

应用程序和 ServiceAccount 都与开发者控制台中的应用程序相关联。

与 App 和 ServiceAccount 关联的电子邮件是不同的域。 (这不是 Google Apps for Work。)

问题:由于较新的带有 Google Play 服务的 Android Drive API 仅支持 Drive.SCOPE_FILE,该应用无法访问由 Linux 上的服务帐户创建的文件。

  1. 是否可以在服务器上使用 REST API 添加/更改文件的所有权,以便客户端可以使用 Drive?SCOPE_FILE 读取文件?到目前为止,我在这条道路上的尝试都失败了。尝试插入新所有权失败,状态为尚未实现。更新权限以向应用程序提供所有权报告此文件的权限不足。尝试修补权限会给出类似的失败消息。但是,我是这个 API 的新手,可能做错了。

  2. 是否可以使用 Android DownloadManager 服务访问文件的内容?我对这条路径所做的最好的尝试是链接的多种变体,是一个看起来适合浏览器解析和显示的 HTML 文件:而不是 jpeg 文件的内容。同样,这对我来说是一个新领域,我可能做得不对。

  3. 根据我的研究,我似乎可以通过在 Android 客户端上使用 REST API 来完成我需要做的事情,但如果有其他途径,我真的不想招致这种开销。

在高层次上,文档(虽然很稀疏)暗示了我想做的事情。有没有人有这种数据流模式的经验?如果是这样,客户端读取服务帐户在服务器上创建的文件的适当方式是什么?

提前致谢!

最佳答案

在探索各种兔子洞几天后,我能够使用 Android DownloadManger 下载该文件。诀窍是在 HTTP 请求 URI 中编写正确的查询参数:

https://drive.google.com/uc?export=download&id=[resourceId]

此外,谷歌驱动器文件资源安全性需要“公开”或“任何有链接的人”才能正常工作。

关于android - 如何使用 Google Drive 将文件从 Linux 传输到 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32275973/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com