gpt4 book ai didi

Django 简单缩略图与 sorl 缩略图的区别

转载 作者:行者123 更新时间:2023-12-04 08:54:57 26 4
gpt4 key购买 nike

我一直在阅读和尝试 Django 的各种缩略图应用程序。这些是要求:

  • 所有生成的缩略图必须保存在与原始图像分开的 S3 存储桶中,即单独的存储类
  • 删除图像实例时,必须同时删除原始图像文件以及所有生成的缩略图
  • 最大限度地减少代价高昂的低效率,例如。获取缩略图的 url 以在 DRF 中序列化不应该每次都在 S3 存储桶中查看它是否存在,等等。

  • VersatileImageField 未能满足第一个要求。 ImageKit 未能满足第二个要求。第三个要求是我最困惑的地方;我试图让自己了解最佳实践,但信息是零散的,我没有信心根据我目前学到的知识做出决定。

    根据我的阅读,我的印象是最有效的行为如下:
  • 保存后立即生成缩略图并假设它始终存在
  • 要访问缩略图,请根据原始图像的文件名和缩略图尺寸/质量生成 URL,因为我们知道它确实存在
  • post_delete 将删除所有缩略图和原始文件

  • 我最感兴趣的是了解 easy-thumbnails 和 sorl-thumbnail 所采用的方法的差异(如果它们与我上面简要概述的过程一致,或者它们有更有效的方法),以及优点/缺点在他们的每一种方法论中。

    最佳答案

    我不确定这是否有帮助,但我过去使用过简单的缩略图,而且我相当确定,如果您稍微配置一下,它可以完成您要求的所有事情。用保存功能配置它有点棘手,因为保存功能不关心配置,但也不是不可能。可能导致问题的主要因素是您必须使用“保存并继续编辑”来访问和使用缩略图选项。如果您在保存时尚未创建它,那么在您执行此操作之前,它将不可见。

    def save()
    found_id = self.id
    super(Team, self).save(*args, **kwargs)
    if self.image and found_id is None and self.original_image_width and self.original_image_height:
    self.image = get_thumbnailer(self.image).get_thumbnail({
    'size': (self.original_image_width, self.original_image_height)
    }).name
    super(Team, self).save(*args, **kwargs)

    关于Django 简单缩略图与 sorl 缩略图的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35141061/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com