Fix edge case where browser sends multiple requests to download file.

This commit is contained in:
Nick Mowen 2022-09-07 16:25:06 -06:00 committed by Blake Blackshear
parent b6f799e641
commit 7e9f913ff6

View File

@ -786,6 +786,7 @@ def recording_clip(camera_name, start_ts, end_ts):
file_name = f"clip_{camera_name}_{start_ts}-{end_ts}.mp4"
path = f"/tmp/cache/{file_name}"
if not os.path.exists(path):
ffmpeg_cmd = [
"ffmpeg",
"-y",
@ -803,16 +804,20 @@ def recording_clip(camera_name, start_ts, end_ts):
"+faststart",
path,
]
p = sp.run(
ffmpeg_cmd,
input="\n".join(playlist_lines),
encoding="ascii",
capture_output=True,
)
if p.returncode != 0:
logger.error(p.stderr)
return f"Could not create clip from recordings for {camera_name}.", 500
else:
logger.debug(
f"Ignoring subsequent request for {path} as it already exists in the cache."
)
response = make_response()
response.headers["Content-Description"] = "File Transfer"