1

在我的应用程序中,我有时会生成一张新图片。在这里阅读评论后,我决定将图片存储在文件系统中,将元数据存储在数据库中,所以现在我的文件独立于数据库静态提供(bd 为用户提供他们想要访问的文件名,然后他们从中提取静态文件服务器)。

但是,我这里的问题是我并不总是希望用户看到其他用户生成的图片。例如,假设用户 Joe 创建了图片 A 和 B,用户 Sue 创建了图片 C 和 D。我不希望 Joe 能够看到 C 和 D,我也不希望 Sue 看到 A 和 B。因为所有文件是静态服务的,如果乔碰巧猜到了 C 的 url,他就可以访问它。

由于提供图片的方式几乎不受我的 django 控制,我不确定这里的解决方案是什么,除了加密文件(这是复杂且资源密集型的)

4

2 回答 2

1

使用某个属性的一个或多个 MD5 hexdigest 作为图像路径的一部分;路径将非常随机。

于 2012-01-14T02:16:07.597 回答
1

简单的方法是使用 django send_file[1] 来完成。这很容易实现,但不能很好地扩展。我用它来提供动态生成的报告。这个解决方案的唯一优点是它都是 python 代码。

更好的方法是使用 sanmai 链接上的信息。您也可以在这里查看:http ://www.sensibledevelopment.com/2010/11/django-sendfile-an-for-abstraction-large-file-serving-in-django/了解一些 django 特定信息。

1:http ://djangosnippets.org/snippets/101/

于 2012-01-14T12:47:53.040 回答