【问题标题】:In Django, how to get django-storages, boto and easy_thumbnail to work nicely?在 Django 中,如何让 django-storages、boto 和 easy_thumbnail 正常工作?
【发布时间】:2011-03-24 18:42:43
【问题描述】:

我正在创建一个网站,通过管理员上传文件,然后将它们存储在 Amazon S3 上。我正在为此使用 django-storages 和 boto,它似乎工作得很好。

问题是,我习惯于在模板端使用我的 easy_thumbnails(新的 sorl.thumbnail)来动态创建缩略图。我更喜欢这种方法,而不是模型方面,因为如果我决定在以后更改缩略图大小等,它可以更轻松地维护。

但我意识到 easy_thumbnails 似乎不喜欢阅读现在存储在 Amazon S3 上的图像。另外,我意识到,一旦制作了缩略图,它究竟会放在哪里?显然,我更希望这些也出现在 Amazon S3 上。但是我怎样才能让这两种技术发挥得很好呢?

如何让 easy_thumbnails 将它创建的拇指存储回 Amazon S3?还是我只是看错了?!

谢谢!

【问题讨论】:

    标签: python django amazon-s3 thumbnails


    【解决方案1】:

    easy_thumbnails 将为您进行基于 S3 的图像缩略图 - 您只需设置 settings.THUMBNAIL_DEFAULT_STORAGE,以便 easy_thumbnails 知道要使用哪个存储(在您的情况下,您可能希望将其设置为您正在使用的同一存储为您的 ImageFields)。

    【讨论】:

    • 谢谢你,你为我节省了很多时间
    • 对于所有美好和纯洁的爱,为什么这不是公认的答案?谢谢!
    【解决方案2】:

    我改变了我的使用方式...

    我修改了我的模型,使其具有缩略图字段:

    class Photo(models.Model)
        image = models.ImageField(upload_to=image_upload_to)
        thumb_a = ThumbnailerImageField(upload_to=thumb_a_upload_to, resize_source=dict(size=(98,98), crop='center'),)
    

    在模板上,而不是:

    {% load thumbnail %}
    <img src="{% thumbnail photo.image 98x98 crop='center' %}">
    

    我改成...

    <img src="{{photo.thumb_b.url}}">
    

    当我上传照片时,我现在...

    for i in listOfImages:
        form = CreatePhotoForm(request.POST, i)
            if form.is_valid():
                asdf = form.save(commit=False)
                asdf.owner = request.user
                asdf.image = i
                asdf.thumb_a = i
                asdf.title = str(i)
                asdf.save()
    

    效果很好。

    【讨论】:

      猜你喜欢
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      • 2023-02-16
      • 2011-06-19
      • 1970-01-01
      相关资源
      最近更新 更多