如何使用带有django的Google App引擎安全地提供静态文件?

时间:2018-11-01 07:36:43

标签: django google-app-engine google-cloud-storage

目前,我的网站与Django一起在Google App Engine上运行,而我的静态文件则通过Google云存储提供服务。我浏览了文档,但找不到一种简单的方法来安全地提供静态文件。

假设我以用户身份登录Django网站。我只希望登录的用户看到图片,而其他用户看不到图片。

当前,图片是使用指向Google云存储的链接提供的,访问权限已公开。

但是,这意味着具有该链接的任何人都可以查看该图片。我如何确保只有具有链接的登录用户才能查看图像,而不是具有链接的每个人都可以查看图像,请问有什么方法可以使用Google App Engine标准,Google云存储和Django吗?

我也知道Google云存储可以具有某种形式的访问控制,但是我如何将该部分与Django用户链接?

1 个答案:

答案 0 :(得分:1)

也许您可以将自己的存储桶acl设置为私有,并根据需要实现Signed URL功能。

https://cloud.google.com/storage/docs/access-control/signed-urls

对于Python,请查看有关签名URL的文档:https://googleapis.github.io/google-cloud-python/latest/storage/blobs.html#google.cloud.storage.blob.Blob.generate_signed_url