Я настраиваю приложение django на heroku, которое использует S3 для хранения и django-ckeditor, чтобы пользователи могли отправлять довольно богатые сообщения, включая изображения. Все работает в том, что пользователи могут отправлять сообщения, включая изображения, но я хотел бы иметь возможность отображать счетчик во время загрузки или обработки изображения.
Просматривая библиотеку, можно найти различные ссылки на счетчик, например, в лунном скине, поэтому я думаю, что первый вопрос не связан с тем, реализована ли эта функциональность, и я что-то упустил в своей настройке.
Если он не реализован, что будет лучшим способом подключиться к этому событию загрузки.
Я внес некоторые изменения в файл pillow_backend.py, чтобы исправить ориентацию изображения и изменить его размер, чтобы, возможно, я мог бы использовать плагин уведомлений для отображения сообщения во время этой обработки, просто не зная, как это сделать.
Изображения хранятся на S3
if imager.height > 600 or imager.width > 600:
# quality = getattr(settings, "CKEDITOR_IMAGE_QUALITY", 90)
try:
for orientation in ExifTags.TAGS.keys():
if ExifTags.TAGS[orientation] == 'Orientation':
break
exif = dict(imager._getexif().items())
if exif[orientation] == 3:
imager = imager.rotate(180, expand=True)
elif exif[orientation] == 6:
imager = imager.rotate(270, expand=True)
elif exif[orientation] == 8:
imager = imager.rotate(90, expand=True)
except (AttributeError, KeyError, IndexError):
pass
basewidth = 600
wpercent = (basewidth/float(imager.size[0]))
hsize = int((float(imager.size[1])*float(wpercent)))
imager = imager.resize((basewidth,hsize), Image.ANTIALIAS)
in_mem_file = io.BytesIO()
if filepath.endswith('.jpg'):
imager.save(in_mem_file, format='JPEG')
else:
imager.save(in_mem_file, format='PNG')
img_write = storage.open(filepath, 'w+')
img_write.write(in_mem_file.getvalue())
img_write.close()
Ожидайте, чтобы показать пользователю некоторые признаки того, что изображение загружается / обрабатывается.