From 29de161eed429cf201bb285e5fbcd90bd5ef8ef9 Mon Sep 17 00:00:00 2001 From: Taha Yassine Kraiem Date: Mon, 17 Apr 2023 15:00:30 +0100 Subject: [PATCH] feat(chalice): delete mob file X days after the tag's creation date --- api/chalicelib/utils/s3.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/api/chalicelib/utils/s3.py b/api/chalicelib/utils/s3.py index cd4b84f1b..feb903a4e 100644 --- a/api/chalicelib/utils/s3.py +++ b/api/chalicelib/utils/s3.py @@ -111,7 +111,16 @@ def rename(source_bucket, source_key, target_bucket, target_key): def tag_for_deletion(bucket, key): if not exists(bucket, key): return False - tag_file(bucket=bucket, file_key=key, tag_key='to_delete_in_days', tag_value='7') + # Copy the file to change the creation date, so it can be deleted X days after the tag's creation + s3 = __get_s3_resource() + s3_target = s3.Object(bucket, key) + s3_target.copy_from( + CopySource={'Bucket': bucket, 'Key': key}, + MetadataDirective='COPY', + TaggingDirective='COPY' + ) + + tag_file(bucket=bucket, file_key=key, tag_key='to_delete_in_days', tag_value=config("SCH_DELETE_DAYS", default='7')) def generate_file_key(project_id, key):