javascript - 任何人都可以使用 JavaScript 将文件上传到我的 Google Drive 公共(public)文件夹

标签 javascript api file-upload google-drive-api httprequest

我是 Google API 新手。我的目标是允许网站用户将文件上传到我们的公共(public) Google 云端硬盘文件夹。我应该在客户端进行。

我知道它不安全,但团队敦促我在前端执行此操作。

我已经阅读并尝试了不同的解决方案(也来自 StackOverflow 的答案),但没有任何效果。

我还检查了 Google Drive API 文档:https://developers.google.com/drive/v3/web/manage-uploads

请求应该是:

POST /upload/drive/v3/files?uploadType=media HTTP/1.1
Host: www.googleapis.com
Content-Type: image/jpeg
Content-Length: number_of_bytes_in_file
Authorization: Bearer your_auth_token

JPEG data

我尝试在 JavaScript 中发出简单的 HTTP POST 请求,但无法设置 Host header (不安全的 header 错误)。

your_auth_token客户端 secret 吗?

有什么想法可以实现这一点吗?

最佳答案

您需要创建一个 Google 应用程序来将您的 auth_token 粘贴到您的请求 header 中,这样应该可以正常工作。

授权如何运作 在较高级别上,所有应用程序都遵循相同的基本授权模式:

  1. 在 Google API 控制台中注册应用程序。
  2. 请求用户授予对其 Google 帐户中数据的访问权限。
  3. 如果用户同意,您的应用程序会请求并接收 凭证
  4. 访问云端硬盘 API。
  5. 刷新凭据(如有必要)。

创建新的身份验证

  1. 在“凭据”页面中,单击“创建凭据”>“OAuth 客户端” 用于创建 OAuth 2.0 凭据的 ID 或创建凭据 > 用于创建服务帐户的服务帐户 key 。
  2. 如果您创建了 OAuth 客户端 ID,请选择您的应用程序 类型。填写表格并单击“创建”。

客户端 key 存储在此处:

https://console.developers.google.com/flows/enableapi?apiid=drive&safe=vss&credential=client_key

更多文档

https://developers.google.com/drive/v2/web/about-auth

关于javascript - 任何人都可以使用 JavaScript 将文件上传到我的 Google Drive 公共(public)文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38915173/

相关文章:

java - 如何使用jsf上传文件?

javascript - 如何使用 Selenium Python 在 WordPress 帖子中上传文件?

javascript - 在隐藏的输入类型中传递js变量值,然后用php检索它

php - 在 Etsy 上创建新列表

javascript - 使用作为参数传递给 url 的 jsonld 数据加载 vue 应用程序

windows - Windows API 调用的内存泄漏问题 - Delphi

c++ - win32 API函数GetModuleFileName或GetModuleHandle中的 "Module"是什么?

file-upload - 从 MVC 将带有附加表单数据的文件上传到 Web Api

javascript - shift 函数在以下代码中如何工作?

javascript - 类型 'sendEmailVerification' 上不存在属性 'void'