28 lines
941 B
Python
28 lines
941 B
Python
"""Gallery app celery tasks."""
|
|
import logging
|
|
|
|
from celery import shared_task
|
|
from sorl.thumbnail import delete
|
|
|
|
from . import models
|
|
|
|
logging.basicConfig(format='[%(levelname)s] %(message)s', level=logging.INFO)
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@shared_task
|
|
def delete_image_from_remote_storage(image_id, delete_original=True):
|
|
"""Delete an image from remote storage."""
|
|
image_qs = models.Image.objects.filter(id=image_id)
|
|
if image_qs.exists():
|
|
try:
|
|
image = image_qs.first()
|
|
# Delete from remote storage
|
|
delete(file_=image.image.file, delete_file=delete_original)
|
|
# Delete an instance of image
|
|
image.delete()
|
|
except:
|
|
logger.error(f'METHOD_NAME: delete_image_from_remote_storage\n'
|
|
f'DETAIL: Exception occurred while deleting an image '
|
|
f'from remote storage: image_id - {image_id}')
|