Download admin and remove Django on s3 and then resize the image and save the thumb problem

I get an error after an error while loading and resizing images on s3 using pil and botos3 and django default_storage. I try to do this to save in the admin.

here is the code:

from django.db import models
from django.forms import CheckboxSelectMultiple

import tempfile

from django.conf import settings

from django.core.files.base import ContentFile
from django.core.files.storage import default_storage as s3_storage
from django.core.cache import cache

from datetime import datetime

import Image, os
import PIL.Image as PIL
import re, os, sys, urlparse

class screenshot(models.Model):
    title = models.CharField(max_length=200)
    slug = models.SlugField(max_length=200)

    image = models.ImageField(upload_to='screenshots')
    thumbnail = models.ImageField(upload_to='screenshots-thumbs', blank=True, null=True, editable=False)

    def save(self):
        super(screenshot, self).save() # Call the "real" save() method
        if self.image:

            thumb = Image.open(self.image.path)
            thumb.thumbnail(100, 100)

            filename = str(self.slug)

            temp_image = open(os.path.join('tmp',filename), 'w')
            thumb.save(temp_image, 'JPEG')

            from django.core.files import File
            thumb_data = open(os.path.join('/tmp',filename), 'r')
            thumb_file = File(thumb_data)

            new_file.thumb.save(str(self.slug) + '.jpg', thumb_file)


    def __str__(self):
        return self.title

This is just one of many ways to make it work, and I either get (2, “There is no such file or directory”), or some other kind of error.

, - . , django, , , . , . django - http://djangosnippets.org/snippets/224/, , . IOErrors " / ", s3 . , :

myimage = open(settings.MEDIA_URL + str(self.image)) 
myimage_io = StringIO.StringIO()
imageresize = myimage.resize((100,100), Image.ANTIALIAS)
imageresize.save('resize_100_100_aa.jpg', 'JPEG', quality=75)

3 , !

+3
2

sorl-thumbnail. , ImageField django, , , .

  • (PIL, pgmagick)
  • (redis, cached db)
  • .
  • , html
  • ImageField ,
  • CSS-
+5

, sorl-thumbnail . , S3BotoStorage, .

,

thumb = Image.open(self.image.path)

thumb = Image.open(s3_storage.open(self.image.name))

, .

+7

All Articles