通过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 位置?