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

时间:2018-02-22 01:36:54

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

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

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

  • 灵活使用pricing。特定pricing documentation
  • 中的更详细信息
  • 与平台中的其他产品完全集成(如计算引擎实例)。您可以使用different available APIs来访问它,但我会建议使用惯用的客户端库作为您的首选语言。但是,如果您使用的是Angular,则可能会对JSON API
  • 感兴趣
  • API设计用于无限扩展并提供enterprise-grade SLA(与驱动器不同,其API没有SLA)。

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

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