【问题标题】:How to upload/download files directly from Google Drive to the browser without using server bandwidth?如何在不使用服务器带宽的情况下直接从 Google Drive 上传/下载文件到浏览器?
【发布时间】:2021-02-25 13:58:14
【问题描述】:

我想制作一个网络应用,对我来说唯一的成本就是为用户提供网页,并且他们的所有数据都保存到他们的 Google 云端硬盘中,这样我就不必为存储空间或带宽付费。

这可以使用 Google 云端硬盘吗?

我不知道怎么做:

  • 如果我想直接从浏览器中保存某些内容,它需要我的应用程序的 API 密钥,我不能将它放入 HTML 中,因为它是不安全的。

  • 如果我尝试在网页调用我的服务器时执行任何操作,则文件必须通过我的服务器才能到达 Google。

【问题讨论】:

  • 您是要使用自己的 Google Drive(所有用户使用相同的帐户)还是让用户在使用您的应用程序时登录他们的个人 Google Drive 帐户并将数据保存在那里?
  • 他们的用户帐户。谢谢,更新问题
  • 我的意思是 Google APIs JS 客户端,是的。 github.com/google/google-api-javascript-client
  • Google needs a secret key..除了这不是秘密。这不是密码。您提供 API 密钥/客户端 ID。用户在脚本提示时提供用户名和密码。需要机密的服务器端应用程序有不同的 OAuth 流程。这不是。 If I make this key public by putting it in the HTML then anyone anywhere could use that key to make calls to Google masquerading as me...不,因为 API 密钥与您的网站及其域相关联,正如我已经提到的。阅读:developers.google.com/identity/protocols/oauth2/…
  • 好的,谢谢!我会继续假设浏览器 API 可以工作,如果我以后仍有疑问,我会在安全堆栈交换上发布一些内容。

标签: google-api google-drive-api


【解决方案1】:

如果我想直接从浏览器中保存某些内容,它需要我的应用程序的 API 密钥,我不能将它放入 HTML 中,因为它不安全。

您需要客户端凭据,api 密钥只会让您访问公共数据,不会让您编写任何内容。如果配置正确,Web 凭据将绑定到它们打算用于那里的域,因为它们被认为是安全的。

如果我尝试在网页调用我的服务器时执行任何操作,则文件必须通过我的服务器才能到达 Google。

考虑到您的服务器正在运行代码,这是正确的。没有办法直接从客户端路由到用户。除非您使用 javascript 执行此操作,否则代码在客户端运行并在用户浏览器中运行。

【讨论】:

  • 谢谢。我不确定你的答案是什么。如果是,那么具体如何?
  • @Richard 堆栈溢出不是在这里为您提供问题的解决方案。你问了一个非常模糊的问题,关于是否有可能。我给你一些更正和一些关于如何实现它的想法。我无法为您构建您的解决方案。如果您有任何问题,为什么不试一试并回来。
猜你喜欢
  • 2013-06-21
  • 1970-01-01
  • 1970-01-01
  • 2019-09-06
  • 2022-06-30
  • 1970-01-01
  • 2016-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多