Format metadata correctly and use MetadataDirective to put new metadata in S3 object

This commit is contained in:
Pea Tyczynska
2019-10-14 10:41:37 +01:00
parent 0a617379c4
commit 0b65e75fe9
2 changed files with 6 additions and 4 deletions

View File

@@ -132,9 +132,10 @@ def move_scan_to_invalid_pdf_bucket(source_filename, message=None, invalid_pages
if message: if message:
metadata["validation_failed_message"] = message metadata["validation_failed_message"] = message
if invalid_pages: if invalid_pages:
metadata["invalid_pages"] = [str(p) for p in invalid_pages] metadata["invalid_pages"] = "-".join(map(str, invalid_pages))
if page_count: if page_count:
metadata["page_count"] = str(page_count) metadata["page_count"] = str(page_count)
_move_s3_object( _move_s3_object(
source_bucket=current_app.config['LETTERS_SCAN_BUCKET_NAME'], source_bucket=current_app.config['LETTERS_SCAN_BUCKET_NAME'],
source_filename=source_filename, source_filename=source_filename,
@@ -187,7 +188,8 @@ def _move_s3_object(source_bucket, source_filename, target_bucket, target_filena
# in the destination bucket the expiration time will be reset to 7 days left to expire # in the destination bucket the expiration time will be reset to 7 days left to expire
put_args = {'ServerSideEncryption': 'AES256'} put_args = {'ServerSideEncryption': 'AES256'}
if metadata: if metadata:
metadata = put_args['Metadata'] = metadata put_args['Metadata'] = metadata
put_args["MetadataDirective"] = "REPLACE"
obj.copy(copy_source, ExtraArgs=put_args) obj.copy(copy_source, ExtraArgs=put_args)
s3.Object(source_bucket, source_filename).delete() s3.Object(source_bucket, source_filename).delete()

View File

@@ -482,7 +482,7 @@ def test_process_letter_task_check_virus_scan_passed_when_sanitise_fails(
"file": base64.b64encode(b"nyan").decode("utf-8"), "file": base64.b64encode(b"nyan").decode("utf-8"),
"validation_passed": False, "validation_passed": False,
"message": "content-outside-printable-area", "message": "content-outside-printable-area",
"invalid_pages": [1], "invalid_pages": [1, 2],
"page_count": 1 "page_count": 1
} }
mock_sanitise = mocker.patch( mock_sanitise = mocker.patch(
@@ -503,7 +503,7 @@ def test_process_letter_task_check_virus_scan_passed_when_sanitise_fails(
source_bucket=source_bucket_name, source_filename=filename, source_bucket=source_bucket_name, source_filename=filename,
target_bucket=target_bucket_name, target_filename=filename, metadata={ target_bucket=target_bucket_name, target_filename=filename, metadata={
"validation_failed_message": "content-outside-printable-area", "validation_failed_message": "content-outside-printable-area",
"invalid_pages": ["1"], "invalid_pages": "1-2",
"page_count": "1" "page_count": "1"
} }
) )