асинхронное удаление из s3
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import asyncio
|
||||||
import logging
|
import logging
|
||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
@@ -28,10 +29,14 @@ async def delete_creative(self: 'Usecase', input: dto.DeleteCreativeInput) -> No
|
|||||||
|
|
||||||
media_key = creative.media_s3_key
|
media_key = creative.media_s3_key
|
||||||
if media_key:
|
if media_key:
|
||||||
try:
|
|
||||||
await self.s3.delete(media_key)
|
async def delete_old_media() -> None:
|
||||||
log.info('Deleted creative media from S3: %s', media_key)
|
try:
|
||||||
except Exception as e:
|
await self.s3.delete(media_key)
|
||||||
log.warning('Failed to delete creative media from S3: %s', e)
|
log.info('Deleted old creative media from S3: %s', media_key)
|
||||||
|
except Exception as e:
|
||||||
|
log.warning('Failed to delete old creative media from S3: %s', e)
|
||||||
|
|
||||||
|
asyncio.create_task(delete_old_media())
|
||||||
|
|
||||||
await self.database.delete_creative(input.creative_id)
|
await self.database.delete_creative(input.creative_id)
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import asyncio
|
||||||
import logging
|
import logging
|
||||||
import uuid
|
import uuid
|
||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
@@ -33,14 +34,18 @@ async def update_creative(
|
|||||||
if input.media_data is not None:
|
if input.media_data is not None:
|
||||||
domain.validate_media_size(input.media_data)
|
domain.validate_media_size(input.media_data)
|
||||||
|
|
||||||
# Удаляем старое медиа из S3
|
# Удаляем старое медиа из S3 в фоне
|
||||||
old_media_key = creative.media_s3_key
|
old_media_key = creative.media_s3_key
|
||||||
if old_media_key:
|
if old_media_key:
|
||||||
try:
|
|
||||||
await self.s3.delete(old_media_key)
|
async def delete_old_media() -> None:
|
||||||
log.info('Deleted old creative media from S3: %s', old_media_key)
|
try:
|
||||||
except Exception as e:
|
await self.s3.delete(old_media_key)
|
||||||
log.warning('Failed to delete old creative media from S3: %s', e)
|
log.info('Deleted old creative media from S3: %s', old_media_key)
|
||||||
|
except Exception as e:
|
||||||
|
log.warning('Failed to delete old creative media from S3: %s', e)
|
||||||
|
|
||||||
|
asyncio.create_task(delete_old_media())
|
||||||
|
|
||||||
# Загружаем новое медиа в S3
|
# Загружаем новое медиа в S3
|
||||||
new_media_data = input.media_data
|
new_media_data = input.media_data
|
||||||
@@ -82,7 +87,6 @@ async def update_creative(
|
|||||||
|
|
||||||
|
|
||||||
def _get_content_type(media_type: str | None) -> str:
|
def _get_content_type(media_type: str | None) -> str:
|
||||||
"""Map Telegram media type to MIME content type."""
|
|
||||||
if not media_type:
|
if not media_type:
|
||||||
return 'application/octet-stream'
|
return 'application/octet-stream'
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user