🐛(backend) normalize raw S3 object keys

Correction to preserve already encoded plus signs in addition to slashes.
This commit is contained in:
ilias
2026-06-29 16:21:57 +02:00
committed by aleb_the_flash
parent 4e5e648730
commit 78acaf395e
2 changed files with 30 additions and 3 deletions
@@ -406,6 +406,32 @@ def test_s3_parser_accepts_unencoded_filepath(settings):
assert parser.get_recording_id(data) == recording_id
def test_s3_parser_preserves_plus_signs_in_raw_filepath(settings):
"""Test S3 parser preserves plus signs while encoding slash separators."""
settings.RECORDING_OUTPUT_FOLDER = "recordings"
recording_id = "80ae9fe5-639a-438b-b86e-9e3dd2d55f4d"
parser = S3Parser(bucket_name="recordings-bucket")
data = {
"Records": [
{
"s3": {
"bucket": {"name": "recordings-bucket"},
"object": {
"key": f"folder+name/recordings/{recording_id}.mp4",
},
}
}
]
}
event = parser.parse(data)
assert event.filepath == f"folder+name%2Frecordings%2F{recording_id}.mp4"
assert parser.validate(event) == recording_id
def test_s3_get_recording_id_success(s3_parser, valid_s3_event):
"""Test successful extraction of recording ID from S3 event."""
recording_id = s3_parser.get_recording_id(valid_s3_event)