问题描述
我希望后端使用Google Drive API能够从普通的Google Drive文件夹(而不是云存储桶)列出/上传/下载文件。但不是用户的Google云端硬盘,只有我的云端硬盘。
就最终用户而言,他们只是在我的网站上,但是当他们上传文件时,我的后端将收到该文件并将其存储在我的Google驱动器上。同样,该文件夹中的文件列表很简单,我只希望它们单击我的前端按钮,然后让它向后端发送调用,然后后端向google API发送调用并返回一个列表。 ...有效地使我的后端成为Google云端硬盘的中间人。这样我的用户就不需要Google帐户即可访问我的网站
我的理由是我希望我的用户不需要Google帐户,但是我仍然需要与承包商共享这些文件夹。承包商可以拥有一个Google帐户,这不会打扰我,而且我不想通过在Google云端硬盘已经可以正常工作的情况下为我的承包商构建单独的前端来下载这些文件夹来重新发明轮子会压缩文件夹并下载已构建的UI。
所以我想要: 用户-> 前端-> 我的后端-> 谷歌驱动器
我看到了针对其他服务(例如分析和日历)执行此操作的帖子,但我确实需要驱动器功能。
用户可以是需要上传和下载的我的客户,也可以是我的客户的客户端(他们只需要上传)
主要问题: 我可以将NodeJS后端设置为访问我的Google云端硬盘以列出/下载/上传
如果可能的话:
如何,我应该怎么做?当我写这篇文章时,我正在思考一些问题……例如,将文件从前端上传到后端然后再上传到Google驱动器会太麻烦而不实际吗? (这些视频文件的大小大约为300-400mb)。
如果不可能,或者太麻烦:
有人能提出一些建议,使访问Google Cloud Bucket文件夹更容易吗?包?例?方法?教程?
前端:带有axios的VueJS
后端:AWS ec2服务器上的超级基本节点/ express API /后端
解决方法
简短的回答是。
执行此操作的方法是使用service account,因为这些帐户是服务要使用的特殊凭据。这些帐户的格式为:# cat item1 item3
# 1 1 0 0
# 2 1 0 0
# 3 1 1 1
# 4 No items 0 No items
# 5 2 1 1
# 6 2 1 0
# 7 2 No items 0
# 8 No items 0 0
。
拥有服务帐户后,您需要在Google云端硬盘位置上授予对该服务帐户的访问权限。要授予对此服务帐户的访问权限,只需在添加编辑许可的电子邮件中,就可以与该用户共享位置(文件或文件夹),就像您要与其他用户共享文件一样。
最后,要以编程方式操作那里的文件,可以使用NodeJS Client Library,这比直接操作API调用更容易完成任务。