【发布时间】:2017-02-17 21:04:35
【问题描述】:
我想使用 Google Drive 作为我的 Django 项目的存储空间(特别是我需要存储用户拍摄的图像)。我想要达到的目标如下:
用户使用表单上传他们的图像。这些文件必须以某种方式通过 Django 路由,后者使用 Google Drive API 将它们重定向到 Google Drive。我不直接从用户的浏览器将文件发送到 Google Drive 的原因是我应该在客户端存储访问 Google Drive API 的密钥(当然,最终用户不能直接访问)。
上传后,我必须能够在我网站的图库中显示图片。
到目前为止,我已经阅读了 Google Drive API 文档,特别是,我已经成功地使用 OAuth2 完成了quickstart 用于服务器到服务器应用程序,请参阅here(快速入门涵盖了上传文件的情况到用户的 Google Drive 文件夹,因此我不需要用户身份验证的中间步骤;相反,我使用服务帐户来授权我的 api 请求)。
附带问题:
有没有办法以可浏览的方式访问用户通过 API 上传到 Google Drive 的文件列表,或者 API 是他们的唯一接口?我可以使用类似于我自己的 Google Drive 帐户的 UI 访问它们吗?
另外,我是 Google 服务的新手,开发人员控制台在我看来是一团糟……我不明白我可以使用多少磁盘空间,以及这个存储空间如何/是否与我自己的 Google Drive 帐户。
【问题讨论】:
-
您能否澄清这是使用服务帐户还是普通帐户?请注意,您将找到的大多数示例都是针对用户想要将文件保存到自己的帐户的用例。您的用例不同,因此您需要相应地调整身份验证。
-
我知道其中的区别,我使用的是服务器到服务器应用程序链接中所写的服务帐户。
-
我的意思是您是将文件存储在服务帐户中,还是使用服务帐户只是为了代理访问普通帐户的共享文件夹?
-
对不起,我不明白这个问题(可能是因为我不完全了解我在开发人员控制台中所做的事情,正如我在“相关问题”中所说的那样)。或多或少这就是我所做的:使用此 [链接][console.developers.google.com/start/api?id=drive] 创建一个项目,在仪表板中启用 Google Drive API,然后创建一个服务帐户和我用来授权我的请求的相关 json 密钥文件到 Google 云端硬盘。因此,我认为我将文件存储在服务帐户中(与我自己的帐户无关)。
-
那么是的,您将文件存储在服务帐户中。有时人们使用服务帐户写入普通帐户的共享文件夹。
标签: django google-drive-api http-upload