通过django Web应用程序将用户文件上传到google驱动器

时间:2017-02-17 21:04:35

标签: django google-drive-api http-upload

我想将Google云端硬盘用作我的Django项目的存储空间(特别是我需要存储用户拍摄的图像)。我想要实现的目标如下:

  • 用户使用表单上传图片。这些文件必须以某种方式通过Django路由,Django使用Google Drive API将它们重定向到Google云端硬盘。我不直接从用户的浏览器向Google云端硬盘发送文件的原因是我应该在客户端存储访问Google Drive API的保密密钥(当然,不能直接访问最终用户)。

  • 上传后,我必须能够在我网站的图库中显示图片。

到目前为止,我已阅读Google Drive API文档,特别是,我已设法使用OAuth2完成quickstart服务器到服务器应用程序,请参阅here(快速入门涵盖了将文件上传到用户的Google云端硬盘文件夹的情况,因此我需要一个我不需要的用户身份验证的中间步骤;相反,我使用服务帐户来授权我的api请求。

侧面问题:

  • 有没有办法以浏览方式访问用户通过API或API上传到Google云端硬盘的文件列表是他们唯一的界面?我可以使用类似于我自己的Google云端硬盘帐户的用户界面访问它们吗?

  • 此外,我对谷歌服务和开发者控制台的新手在我看来相当混乱......我还不知道我有多少磁盘空间以及如何/如此存储空间与我自己的Google云端硬盘帐户相关。

1 个答案:

答案 0 :(得分:0)

有没有办法以浏览方式访问用户通过API或API上传到Google云端硬盘的文件列表是唯一的界面?我可以使用类似于我自己的Google云端硬盘帐户的用户界面访问它们吗?

简短的回答是否定的。服务帐户专门只能由他们所拥有的应用程序访问"通过。但是,如果这很重要,您可以使用文件夹共享,以(1)在常规帐户的UI中显示服务帐户数据,或(2)允许您的应用程序写入常规帐户的文件夹通过共享文件夹。请注意,无论哪种方式,文件都会消耗服务帐户的配额,而不是常规帐户。

另一个选择是根本不使用服务帐户,并使用常规帐户执行所有操作。

我还不了解我可以使用多少磁盘空间以及此存储空间与我自己的Google云端硬盘帐户的关联方式。

最简单的方法是使用About.get(https://developers.google.com/drive/v3/reference/about/get)来获取限制和使用的配额。服务帐户是一个独立帐户,与您用于创建帐户的常规帐户没有任何关系(至少在存储和访问方面)。