繁体   English   中英

我可以设置我的 Node.js 后端访问我的 Google Drive 以列出/下载/上传吗?

[英]Can I set my Node.js Backend to access my Google Drive to list/download/upload?

我希望我的后端使用 Google Drive API 能够从普通的 Google Drive 文件夹(而不是云存储桶)列出/上传/下载文件。 但不是用户的 Google Drive,只有 MY drive。

就最终用户而言,他们只会在我的网站上,但是当他们上传文件时,我的后端会收到它并将其存储在我的谷歌驱动器上。 对于文件夹中的简单文件列表也是如此,我只希望他们单击我的前端按钮并让它向我的后端发送调用,然后我的后端向谷歌 API 发送调用并返回一个列表。 ...有效地使我的后端成为我的谷歌驱动器的中间人。 这样我的用户就不需要谷歌帐户来访问我的网站

我的理由是我希望我的用户不需要谷歌帐户,我仍然需要与承包商共享这些文件夹。 承包商可以有一个谷歌帐户,这不会打扰我,而且我不想通过为我的承包商构建一个单独的前端来重新发明轮子,以便在 Google Drive 已经完美运行时下载这些文件夹UI 将 zip 一个文件夹并下载它已经构建。

所以我想要:用户->前端->我的后端->谷歌驱动器

我已经看到有关为其他服务(例如分析和日历)执行此操作的帖子,但我确实需要驱动功能。

用户可以是我需要上传和下载的客户,也可以是我客户的客户(他们只需要上传)

主要问题:我可以将我的 NodeJS 后端设置为访问我的 Google Drive 以列出/下载/上传吗

如果有可能:

怎么做,我应该怎么做? 当我写这篇文章时,我正在考虑一些问题......比如,将文件从前端上传到后端然后到谷歌驱动器是否太麻烦而不实用? (这些是大约 300-400mb 的视频文件)。

如果不可能或者太麻烦:

任何人都可以提出任何可以更轻松地访问 Google Cloud 存储桶文件夹的建议吗? Package? 例子? 方法? 教程?


前端:带有 axios 的 VueJS

后端:AWS ec2 服务器上的超级基本节点/express API/后端

简短的回答是肯定的。

这样做的方法是使用服务帐户,因为这些帐户是服务使用的特殊凭据。 这些帐户的格式为: service-account-name@project-id.iam.gserviceaccount.com

拥有服务帐户后,您需要在 Google Drive 位置授予对该服务帐户的访问权限。 要授予对此服务帐户的访问权限,请与此帐户共享位置(文件或文件夹),就像您与其他用户共享文件一样,只需在编辑许可上添加 email。

最后,要以编程方式操作那里的文件,您可以使用NodeJS 客户端库,这将使任务比直接操作 API 调用更容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM