2010-08-03 77 views
5

我正在製作一個網站,通過管理員上傳文件,然後將它們存儲在Amazon S3上。我爲此使用django-storage和boto,它似乎工作得很好。在Django中,如何讓django-storage,boto和easy_thumbnail很好地工作?

事情是,我習慣在模板上使用我的easy_thumbnails(新的sorl.thumbnail)在飛行中創建縮略圖。我更喜歡這種方法,而不是模型方面,因爲如果我決定在稍後的日期更改縮略圖尺寸等,它可以更容易地進行維護等。

但是我意識到easy_thumbnails似乎不喜歡閱讀該映像現在存儲在Amazon S3上。另外,我意識到,它究竟會在哪裏放置縮略圖呢?顯然,我更喜歡這些也在Amazon S3上。但是,如何讓這兩種技術發揮出色?

我如何獲得easy_thumbnails來存儲它在Amazon S3上創建的拇指?或者我只是看着這一切都錯了?!

謝謝!

回答

16

easy_thumbnails將爲您做基於S3的圖像縮略圖 - 您只需設置settings.THUMBNAIL_DEFAULT_STORAGE,以便easy_thumbnails知道要使用哪種存儲(在您的情況下,您可能希望將其設置爲與您使用的存儲相同你的ImageFields)。

+0

感謝你爲此節省了我很多時間 – ajt 2014-08-06 17:46:32

+1

對於所有那些美好純潔的愛,爲什麼這不是公認的答案?謝謝! – 2015-03-17 20:08:50

-1

我改變了我如何使用它?

我修改了模型,有縮略圖場:

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() 

它工作得很好。

+1

你錯過了它爲什麼沒有按照它應有的方式工作。 – 2012-10-11 11:43:17

相關問題