Miszmisz commited on
Commit
3dd7fad
·
1 Parent(s): a1a0ea8

add lookup to 'uploads' in base s3 dir

Browse files
Files changed (1) hide show
  1. main.py +13 -13
main.py CHANGED
@@ -33,45 +33,45 @@ class CutRequestInput(BaseModel):
33
  data: CutRequest
34
 
35
  def download_file(news_name: str, quote_filename: str, new_filename: str = "source.mp3"):
36
- logger.debug(f"Downloading file: news_name={news_name}, quote_filename={quote_filename}")
37
- s3_directory = f'{aws_env}/{news_name}'
38
  s3_object_key = f'{s3_directory}/{quote_filename}'
39
  local_file = os.path.join(temp_dir, new_filename)
40
 
41
  try:
42
  # Ensure the download directory exists
43
  os.makedirs(temp_dir, exist_ok=True)
44
- logger.debug(f"Downloading from S3: bucket={s3_bucket_name}, key={s3_object_key}, local_file={local_file}")
45
 
46
  s3_client.download_file(s3_bucket_name, s3_object_key, local_file)
47
- logger.debug(f"File downloaded and saved as: {local_file}")
48
 
49
  # Return the local_file path
50
  return local_file
51
 
52
  except ClientError as e:
53
  if e.response['Error']['Code'] == "404":
54
- logger.error(f"File not found in S3: {s3_object_key}")
55
 
56
  raise HTTPException(status_code=404, detail=f"The file {quote_filename} does not exist in S3.")
57
  else:
58
- logger.error(f"S3 download error: {str(e)}")
59
 
60
  raise HTTPException(status_code=500, detail=f"Failed to download file from S3: {str(e)}")
61
  except Exception as e:
62
- logger.exception(f"Unexpected error in download_file: {str(e)}")
63
 
64
  raise HTTPException(status_code=500, detail=f"An unexpected error occurred: {str(e)}")
65
 
66
 
67
  @app.post("/cut-audio")
68
  async def cut_audio(request: CutRequestInput):
69
- logger.debug(f"Received request: {request}")
70
 
71
  try:
72
 
73
  cut_request = request.data
74
- logger.debug(f"Parsed cut_request: {cut_request}")
75
 
76
 
77
  print(f"Received request: {cut_request}")
@@ -79,7 +79,7 @@ async def cut_audio(request: CutRequestInput):
79
  download_file(cut_request.news_name, cut_request.quote_filename)
80
  for i, segment in enumerate(cut_request.segments):
81
  start, end = segment
82
- logger.debug(f"Processing segment {i}: start={start}, end={end}")
83
 
84
  output_file = f"/tmp/cut_quote_{i}_{cut_request.quote_filename}"
85
  try:
@@ -90,21 +90,21 @@ async def cut_audio(request: CutRequestInput):
90
  .run()
91
  )
92
  except ffmpeg.Error as e:
93
- logger.error(f"FFMPEG Error: {str(e)}")
94
 
95
  raise HTTPException(status_code=500, detail=str(e))
96
  try:
97
  s3_output_key = f'cut_outs/{aws_env}/{cut_request.news_id}/quote_segment_{i}.mp3'
98
  s3_client.upload_file(output_file, s3_bucket_name, s3_output_key)
99
  except Exception as e:
100
- logger.error(f"S3 Upload Error: {str(e)}")
101
 
102
  raise HTTPException(status_code=500, detail=f"Failed to upload file to S3: {e}")
103
 
104
  return {"message": "Audio cut successfully"}
105
 
106
  except Exception as e:
107
- logger.exception("Unexpected error in cut_audio")
108
  raise HTTPException(status_code=500, detail=f"Unexpected error: {str(e)}")
109
 
110
  @app.post("/merge_audio/{output_key}")
 
33
  data: CutRequest
34
 
35
  def download_file(news_name: str, quote_filename: str, new_filename: str = "source.mp3"):
36
+ # logger.debug(f"Downloading file: news_name={news_name}, quote_filename={quote_filename}")
37
+ s3_directory = f'uploads/{aws_env}/{news_name}'
38
  s3_object_key = f'{s3_directory}/{quote_filename}'
39
  local_file = os.path.join(temp_dir, new_filename)
40
 
41
  try:
42
  # Ensure the download directory exists
43
  os.makedirs(temp_dir, exist_ok=True)
44
+ # logger.debug(f"Downloading from S3: bucket={s3_bucket_name}, key={s3_object_key}, local_file={local_file}")
45
 
46
  s3_client.download_file(s3_bucket_name, s3_object_key, local_file)
47
+ # logger.debug(f"File downloaded and saved as: {local_file}")
48
 
49
  # Return the local_file path
50
  return local_file
51
 
52
  except ClientError as e:
53
  if e.response['Error']['Code'] == "404":
54
+ # logger.error(f"File not found in S3: {s3_object_key}")
55
 
56
  raise HTTPException(status_code=404, detail=f"The file {quote_filename} does not exist in S3.")
57
  else:
58
+ # logger.error(f"S3 download error: {str(e)}")
59
 
60
  raise HTTPException(status_code=500, detail=f"Failed to download file from S3: {str(e)}")
61
  except Exception as e:
62
+ # logger.exception(f"Unexpected error in download_file: {str(e)}")
63
 
64
  raise HTTPException(status_code=500, detail=f"An unexpected error occurred: {str(e)}")
65
 
66
 
67
  @app.post("/cut-audio")
68
  async def cut_audio(request: CutRequestInput):
69
+ # logger.debug(f"Received request: {request}")
70
 
71
  try:
72
 
73
  cut_request = request.data
74
+ # logger.debug(f"Parsed cut_request: {cut_request}")
75
 
76
 
77
  print(f"Received request: {cut_request}")
 
79
  download_file(cut_request.news_name, cut_request.quote_filename)
80
  for i, segment in enumerate(cut_request.segments):
81
  start, end = segment
82
+ # logger.debug(f"Processing segment {i}: start={start}, end={end}")
83
 
84
  output_file = f"/tmp/cut_quote_{i}_{cut_request.quote_filename}"
85
  try:
 
90
  .run()
91
  )
92
  except ffmpeg.Error as e:
93
+ # logger.error(f"FFMPEG Error: {str(e)}")
94
 
95
  raise HTTPException(status_code=500, detail=str(e))
96
  try:
97
  s3_output_key = f'cut_outs/{aws_env}/{cut_request.news_id}/quote_segment_{i}.mp3'
98
  s3_client.upload_file(output_file, s3_bucket_name, s3_output_key)
99
  except Exception as e:
100
+ # logger.error(f"S3 Upload Error: {str(e)}")
101
 
102
  raise HTTPException(status_code=500, detail=f"Failed to upload file to S3: {e}")
103
 
104
  return {"message": "Audio cut successfully"}
105
 
106
  except Exception as e:
107
+ # logger.exception("Unexpected error in cut_audio")
108
  raise HTTPException(status_code=500, detail=f"Unexpected error: {str(e)}")
109
 
110
  @app.post("/merge_audio/{output_key}")