Django中的Sorl缩略图.是否可以根据型号设置两个或多个存储配置文件



我正在进行我的第一个更大的项目。我使用AWS S3来存储我的静态和媒体文件。

我发现如何设置存储取决于型号。用于消息中的公共图像和私人图像。";源";使用正确的acl设置上传文件";公共阅读";用于公共图像和";私人的";用于消息系统中的文件。但是当我使用sorl缩略图时,所有由sorl生成的图片都是公开的。我需要安全的私人图片,不想使用公共acl的私人文件。

你知道这个问题的解决方法吗?

我想到的是:

  • 对私有文件使用另一个拇指应用程序,并更改存储,例如在后端或配置中
  • 更改后端sorl中的名称约定以扩展文件名中的字符数。这不是我想要的,但按名称查找文件要困难得多

我回到我的项目并尝试解决这个问题。我必须为我未来的用户保护邮件中的私人文件。

所以。我研究了sorl是如何在源代码中工作的,并找到了解决方案。

在sorl/base.py文件中,我发现了以下内容:

关于def get_thumbnails

thumbnail = ImageFile(name, default.storage)

我把它改成:

if hasattr(file_, 'storage'):
thumbnail = ImageFile(name, file_.storage)
else:
thumbnail = ImageFile(name, default.storage)

现在,如果我在我的模型中的ImageFields中定义存储,我将对缩略图使用相同的存储。

现在我将开始工作,把这个变化放在自己的后端sorl:(

致以最诚挚的问候

相关内容

  • 没有找到相关文章

最新更新