Обслуживание медиафайлов в django с небольшим размером

Я создаю Django приложение (назовем его Drive) для загрузки фотографий (2MB или больше) и использования их ссылок в другом проекте. проблема заключается в том, что при загрузке всех фотографий на диск и добавлении их ссылок в другой проект фотографии требуют много времени для загрузки, я нашел решение для сервера этих фотографий на самом диске и сжимать их при загрузке, но все равно загрузка занимает много времени.

это функция подачи:

def serve(request, path, document_root=None):

file_link = path

file = File.objects.get(privacy__link=file_link)
rendered_file = FileResponse(file.file)
return rendered_file

он возвращает файл как FileResponse, а затем он будет возвращен в полном размере, и я думаю, что это проблема, и я не хочу, чтобы что-то подобное произошло, я просто хочу просматривать фотографии с маленькими размерами, чтобы они быстрее загружались на сайте.

любая помощь?

Если я правильно вас понял, вы хотите предоставить миниатюру вашего изображения в этом представлении. Это распространенный сценарий, и вы можете найти множество пакетов Django, поддерживающих это различными способами.

ImageKit, например, представляет новый вид поля модели, которое автоматически генерирует новую версию существующего ImageField. Затем вы можете просто обслужить автоматически сгенерированное изображение в вашем представлении.

Пример, взятый из документации ImageKit:

from django.db import models
from imagekit.models import ImageSpecField
from imagekit.processors import ResizeToFill

class Profile(models.Model):
    avatar = models.ImageField(upload_to='avatars')
    avatar_thumbnail = ImageSpecField(source='avatar',
                                      processors=[ResizeToFill(100, 50)],
                                      format='JPEG',
                                      options={'quality': 60})
Вернуться на верх