F(backend): add public media derivatives pipeline
Some checks failed
Backend CI/CD / test (push) Has been cancelled
Backend CI/CD / deploy (push) Has been cancelled

This commit is contained in:
2026-05-20 14:26:51 +03:30
parent 88b793ed9f
commit b4903f7cb1
18 changed files with 710 additions and 53 deletions

View File

@@ -1,20 +1,26 @@
from celery import shared_task
from PIL import Image
import logging
from celery import shared_task
from core.media import safe_process_public_image
logger = logging.getLogger(__name__)
@shared_task
def process_uploaded_image(gallery_id):
"""Process uploaded image: compress, resize, extract metadata"""
"""Process gallery image derivatives and refresh metadata."""
try:
from .models import Gallery
gallery_item = Gallery.objects.get(id=gallery_id)
if gallery_item.image:
# This will trigger the compression and metadata extraction
gallery_item.compress_image()
result = safe_process_public_image(gallery_item.image, "gallery", force=True)
if result:
Gallery.objects.filter(pk=gallery_item.pk).update(
file_size=result.file_size,
width=result.width,
height=result.height,
)
logger.info(f"Processed image: {gallery_item.title}")
return f"Processed image: {gallery_item.title}"