通过Google Drive API上传图片/文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过Google Drive API上传图片/文件相关的知识,希望对你有一定的参考价值。

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

我正在使用来自Google Cloud的虚拟机来托管系统,我启用了Google云端硬盘的Google云端硬盘控制台,但是我被困在授权部分(我在这里引用了文档:https://developers.google.com/drive/v3/web/simple-upload)。我对获取身份验证令牌的位置感到困惑,我从Google云端控制台生成了api密钥,但我在Google云端控制台中看不到任何有关身份验证令牌的信息。

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

答案

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

另一答案

我并不熟悉Google云端硬盘,但是,您可以在此文档页面中找到有关Authorizing Google Drive requests with OAuth 2.0的一些信息。

在任何情况下,考虑到您在问题中解释的用例,并且据我所知您刚刚开始开发,让我建议使用Cloud Storage(Google云平台的产品,就像Compute Engine实例一样)您用来托管您的应用程序),而不是Google云端硬盘。

Google Drive的主要目标是为最终用户提供文件存储,而Google Cloud Storage主要关注的是应用开发者和后端系统存储。将云端存储通过Google云端硬盘作为应用程序的存储系统的一些主要优势是:

  • 基于灵活使用的pricing。特定pricing documentation中更详细的信息。
  • 与平台中的其他产品完全集成(如计算引擎实例)。您可以使用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 API上传图片/文件的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Google Drive 上传和下载文件(使用 Rest Api v3)

通过 Google Drive API 从本地 CSV 文件创建 Google Drive 电子表格

使用 Java 和 Google Drive API V3 将文件上传到共享的 Google Drive 位置?

未经PHP身份验证,Google Drive API不允许上传文件

Google Drive Api PHP 分段上传空内容

如何通过 Google Drive .NET API v3 使用服务帐户访问 Team Drive