ricardo238costa commited on
Commit
94e5bdd
·
verified ·
1 Parent(s): 76b08f6

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +17 -2
main.py CHANGED
@@ -1,5 +1,6 @@
1
  from fastapi import FastAPI, UploadFile, File
2
  from fastapi.responses import FileResponse
 
3
  import cv2
4
  import subprocess
5
  import uuid
@@ -21,6 +22,7 @@ async def process_video(file: UploadFile = File(...)):
21
  cap = cv2.VideoCapture(input_filename)
22
  success, frame = cap.read()
23
  if not success:
 
24
  return {"error": "Não foi possível ler o vídeo."}
25
 
26
  roi_box = detect_product_in_frame(frame)
@@ -36,8 +38,21 @@ async def process_video(file: UploadFile = File(...)):
36
  output_filename
37
  ]
38
  subprocess.run(crop_cmd)
39
-
40
  os.remove(input_filename)
41
- return FileResponse(output_filename, media_type="video/mp4", filename="cropped_video.mp4")
 
 
 
42
  else:
 
43
  return {"error": "Não foi possível detectar o produto para realizar o crop."}
 
 
 
 
 
 
 
 
 
 
 
1
  from fastapi import FastAPI, UploadFile, File
2
  from fastapi.responses import FileResponse
3
+ from starlette.middleware.base import BaseHTTPMiddleware
4
  import cv2
5
  import subprocess
6
  import uuid
 
22
  cap = cv2.VideoCapture(input_filename)
23
  success, frame = cap.read()
24
  if not success:
25
+ os.remove(input_filename)
26
  return {"error": "Não foi possível ler o vídeo."}
27
 
28
  roi_box = detect_product_in_frame(frame)
 
38
  output_filename
39
  ]
40
  subprocess.run(crop_cmd)
 
41
  os.remove(input_filename)
42
+
43
+ response = FileResponse(output_filename, media_type="video/mp4", filename="cropped_video.mp4")
44
+ response.headers["X-Delete-File"] = output_filename
45
+ return response
46
  else:
47
+ os.remove(input_filename)
48
  return {"error": "Não foi possível detectar o produto para realizar o crop."}
49
+
50
+ class CleanupMiddleware(BaseHTTPMiddleware):
51
+ async def dispatch(self, request, call_next):
52
+ response = await call_next(request)
53
+ file_to_delete = response.headers.get("X-Delete-File")
54
+ if file_to_delete and os.path.exists(file_to_delete):
55
+ os.remove(file_to_delete)
56
+ return response
57
+
58
+ app.add_middleware(CleanupMiddleware)