我可以将我的 Node.js 后端设置为访问我的 Google 驱动器到 list/download/upload 吗?

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

我希望我的后端使用 Google 驱动器 API 能够 list/upload/download 普通 google 驱动器文件夹中的文件(相对于云斗)。但不是用户的 Google 驱动器,只有我的驱动器。

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

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

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

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

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

主要问题: 我可以设置我的 NodeJS 后端来访问我的 Google 驱动器到 list/download/upload

如果可以:

我应该怎么做?在我写这篇文章的时候,我在想一些问题……比如,将文件从前端上传到后端,然后再上传到 google 驱动器会不会太麻烦而不实用? (这些是大约 300-400mb 的视频文件)。

如果不可能或者太麻烦:

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


前端:带有 axios 的 VueJS

后端:AWS ec2 服务器上的超级基础 node/express API/back-end

简短的回答是肯定的。

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

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

最后,您可以使用 NodeJS Client Library 以编程方式操作文件,这比直接操作 API 调用更容易。