From 06f6680dfdc2f5306ee8a6e6623cebe7740d0cd6 Mon Sep 17 00:00:00 2001 From: level09 Date: Sat, 11 Jul 2026 14:33:22 +0200 Subject: [PATCH 1/2] fix(export): include all media files per item instead of only the first --- enferno/tasks/exports.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/enferno/tasks/exports.py b/enferno/tasks/exports.py index 449b26ea7..3d1f0300e 100644 --- a/enferno/tasks/exports.py +++ b/enferno/tasks/exports.py @@ -265,8 +265,7 @@ def generate_export_media(previous_result: int) -> t.id | Literal[False]: return False for item in items: - if item.medias: - media = item.medias[0] + for media in item.medias: target_file = f"{Export.export_dir}/{export_request.file_id}/{media.media_file}" if cfg.FILESYSTEM_LOCAL: @@ -297,7 +296,7 @@ def generate_export_media(previous_result: int) -> t.id | Literal[False]: clear_failed_export(export_request) return False # to stop chain - time.sleep(0.05) + time.sleep(0.05) return export_request.id From abd39647e5f74275647387fd41db92e3e910fe4a Mon Sep 17 00:00:00 2001 From: level09 Date: Sat, 11 Jul 2026 14:43:53 +0200 Subject: [PATCH 2/2] refactor(export): create s3 client once outside media loop --- enferno/tasks/exports.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/enferno/tasks/exports.py b/enferno/tasks/exports.py index 3d1f0300e..b7faf3921 100644 --- a/enferno/tasks/exports.py +++ b/enferno/tasks/exports.py @@ -264,6 +264,14 @@ def generate_export_media(previous_result: int) -> t.id | Literal[False]: # UI switch disabled, but just in case... return False + if not cfg.FILESYSTEM_LOCAL: + s3 = boto3.client( + "s3", + aws_access_key_id=cfg.AWS_ACCESS_KEY_ID, + aws_secret_access_key=cfg.AWS_SECRET_ACCESS_KEY, + region_name=cfg.AWS_REGION, + ) + for item in items: for media in item.medias: target_file = f"{Export.export_dir}/{export_request.file_id}/{media.media_file}" @@ -280,12 +288,6 @@ def generate_export_media(previous_result: int) -> t.id | Literal[False]: clear_failed_export(export_request) return False # to stop chain else: - s3 = boto3.client( - "s3", - aws_access_key_id=cfg.AWS_ACCESS_KEY_ID, - aws_secret_access_key=cfg.AWS_SECRET_ACCESS_KEY, - region_name=cfg.AWS_REGION, - ) try: s3.download_file(cfg.S3_BUCKET, media.media_file, target_file) except Exception: