Pregunta En Django, ¿cómo hacer para que django-storages, boto y easy_thumbnail funcionen bien?


Estoy creando un sitio web donde los archivos se cargan a través del administrador y esto los almacenará en Amazon S3. Estoy usando django-storages y boto para esto, y parece estar funcionando bien.

Lo cierto es que estoy acostumbrado a usar mis easy_thumbnails (el nuevo sorl.thumbnail) en el lado de la plantilla para crear miniaturas sobre la marcha. Prefiero este enfoque, en lugar del modelo, ya que permite un mantenimiento más sencillo si alguna vez decido cambiar el tamaño de la miniatura en una fecha posterior, etc.

Pero me estoy dando cuenta de que a easy_thumbnails no parece gustarle leer la imagen ahora que está almacenada en Amazon S3. Además, me di cuenta, ¿dónde estaría exactamente colocando las miniaturas una vez hechas? Obviamente, preferiría que estos también estuvieran en Amazon S3. Pero, ¿cómo consigo que estas dos tecnologías jueguen bien?

¿Cómo obtendría easy_thumbnails para almacenar el pulgar que crea en Amazon S3? ¿O simplemente estoy viendo todo esto mal?

¡Gracias!


5
2017-08-03 14:38


origen


Respuestas:


easy_thumbnails hará miniaturas de imágenes basadas en S3 por ti, solo necesitas configurar settings.THUMBNAIL_DEFAULT_STORAGE, para que easy_thumbnails sepa qué almacenamiento usar (en su caso, es probable que desee configurarlo en el mismo almacenamiento que está usando para sus ImageFields).


16
2018-03-10 16:46



Cambié cómo lo uso ...

Modifiqué mi modelo para tener un campo para la miniatura:

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'),)

y en la plantilla, en lugar de:

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

Lo cambié a ...

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

Cuando subo la foto ahora hago ...

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

Funciona bastante bien


-1
2018-03-17 21:16



Preguntas populares