【问题标题】:Upload images/files through google drive API通过 google drive API 上传图片/文件
【发布时间】:2018-03-02 17:31:51
【问题描述】:

我正在开发的网络应用程序需要允许用户在我们的系统中注册帐户时上传图像和 PDF 文件。我想要实现的是在页面中有一个按钮,点击后,用户可以浏览需要上传的图片或文件,然后代码会调用api将图片或文件存储在google drive中。然后,这些图像或文件将显示在另一个页面中,供管理员审核和批准。

我正在使用来自 Google Cloud 的 VM 来托管系统,并从 Google Cloud 控制台启用了 Google Drive api,但我在授权部分卡住了(我在这里参考了文档:https://developers.google.com/drive/v3/web/simple-upload) .我对在哪里获取身份验证令牌感到困惑,我有从 Google Cloud 控制台生成的 api 密钥,但我在 Google Cloud 控制台中看不到任何有关身份验证令牌的信息。

我不希望用户在需要上传内容时登录他们的谷歌帐户,使用谷歌驱动器应该对用户透明。上传到 Google Drive 的所有图片和文件都应该是公开的,并且对所有人开放以进行只读访问和部分写入访问(只允许添加新文件,不能删除或覆盖现有文件)。

【问题讨论】:

    标签: angular rest typescript google-drive-api google-cloud-platform


    【解决方案1】:

    由于您不希望用户登录他的 Google 帐户,剩下的选择是在您的应用中使用 service accounts

    【讨论】:

      【解决方案2】:

      我对 Google Drive 不是很熟悉,不过,也许你可以在这个文档页面中找到一些关于 Authorizing Google Drive requests with OAuth 2.0 的信息。

      无论如何,鉴于您在问题中解释的用例,并且据我了解您刚刚开始开发,让我建议使用Cloud Storage(Google Cloud Platform 的产品,就像您用于托管应用程序的 Compute Engine 实例),而不是 Google Drive。

      Google Drive 的主要目标是为最终用户提供文件存储,而 Google Cloud Storage 的主要关注点是应用程序开发人员和后端系统存储。使用 Cloud Storage 而非 Google Drive 作为应用程序的存储系统的一些主要优势是:

      • 基于灵活使用的pricing。具体pricing documentation有更多详细信息。
      • 与平台中的其他产品(如 Compute Engine 实例)完全集成。您可以使用different available APIs 来访问它,尽管我会推荐惯用的客户端库作为您的首选语言。但是,如果您使用 Angular,您可能会对 JSON API 感兴趣。
      • API 专为无限扩展而设计,并提供 enterprise-grade SLA(与 Drive 不同,它的 API 没有 SLA)。

      最后,回到授权的话题,大家可以看看this other documentation page。另外,关于存储在云存储中的对象的访问控制,你可以看看how to manage access control

      我知道这个答案并不完全提供您想要在 Google Drive API 中授权请求的解决方案,但我认为对于您的用例,云存储更适合,因此值得一看。

      【讨论】:

      • 谢谢。我们只是认为 google drive 解决方案可能比 google storage 便宜。因为图像可能很容易在短时间内增长。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 1970-01-01
      • 2021-02-11
      相关资源
      最近更新 更多