Update app.py
Browse files
app.py
CHANGED
|
@@ -71,6 +71,8 @@ os.makedirs(DOWNLOADS_DIR, exist_ok=True)
|
|
| 71 |
# Mount the downloads directory
|
| 72 |
app.mount("/files", StaticFiles(directory=DOWNLOADS_DIR), name="files")
|
| 73 |
|
|
|
|
|
|
|
| 74 |
class DownloadRequest(BaseModel):
|
| 75 |
url: str
|
| 76 |
|
|
@@ -79,14 +81,10 @@ class DownloadResponse(BaseModel):
|
|
| 79 |
message: str
|
| 80 |
filename: str = None
|
| 81 |
download_url: str = None
|
|
|
|
| 82 |
|
| 83 |
|
| 84 |
|
| 85 |
-
def verify_file_size(file_path: str, expected_size: int):
|
| 86 |
-
actual_size = os.path.getsize(file_path)
|
| 87 |
-
if actual_size < expected_size:
|
| 88 |
-
raise Exception(f"Downloaded file size mismatch: expected {expected_size} bytes, got {actual_size} bytes")
|
| 89 |
-
|
| 90 |
@app.post("/download", response_model=DownloadResponse)
|
| 91 |
async def download_file(request: DownloadRequest):
|
| 92 |
try:
|
|
@@ -136,8 +134,8 @@ async def download_file(request: DownloadRequest):
|
|
| 136 |
downloaded_file = files[0]
|
| 137 |
logger.info(f"Downloaded file: {downloaded_file}")
|
| 138 |
|
| 139 |
-
#
|
| 140 |
-
|
| 141 |
|
| 142 |
# Generate the download URL
|
| 143 |
space_url = os.getenv("SPACE_URL", "http://localhost:7860")
|
|
@@ -151,7 +149,8 @@ async def download_file(request: DownloadRequest):
|
|
| 151 |
success=True,
|
| 152 |
message="File downloaded successfully",
|
| 153 |
filename=downloaded_file,
|
| 154 |
-
download_url=download_url
|
|
|
|
| 155 |
)
|
| 156 |
|
| 157 |
except subprocess.CalledProcessError as e:
|
|
@@ -172,6 +171,7 @@ async def download_file(request: DownloadRequest):
|
|
| 172 |
os.chdir(original_dir)
|
| 173 |
|
| 174 |
|
|
|
|
| 175 |
@app.get("/test")
|
| 176 |
async def test():
|
| 177 |
"""Test endpoint to verify setup"""
|
|
|
|
| 71 |
# Mount the downloads directory
|
| 72 |
app.mount("/files", StaticFiles(directory=DOWNLOADS_DIR), name="files")
|
| 73 |
|
| 74 |
+
|
| 75 |
+
|
| 76 |
class DownloadRequest(BaseModel):
|
| 77 |
url: str
|
| 78 |
|
|
|
|
| 81 |
message: str
|
| 82 |
filename: str = None
|
| 83 |
download_url: str = None
|
| 84 |
+
file_size: int = None # Include file size in the response
|
| 85 |
|
| 86 |
|
| 87 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 88 |
@app.post("/download", response_model=DownloadResponse)
|
| 89 |
async def download_file(request: DownloadRequest):
|
| 90 |
try:
|
|
|
|
| 134 |
downloaded_file = files[0]
|
| 135 |
logger.info(f"Downloaded file: {downloaded_file}")
|
| 136 |
|
| 137 |
+
# Get the file size
|
| 138 |
+
file_size = os.path.getsize(downloaded_file)
|
| 139 |
|
| 140 |
# Generate the download URL
|
| 141 |
space_url = os.getenv("SPACE_URL", "http://localhost:7860")
|
|
|
|
| 149 |
success=True,
|
| 150 |
message="File downloaded successfully",
|
| 151 |
filename=downloaded_file,
|
| 152 |
+
download_url=download_url,
|
| 153 |
+
file_size=file_size # Include the file size in the response
|
| 154 |
)
|
| 155 |
|
| 156 |
except subprocess.CalledProcessError as e:
|
|
|
|
| 171 |
os.chdir(original_dir)
|
| 172 |
|
| 173 |
|
| 174 |
+
|
| 175 |
@app.get("/test")
|
| 176 |
async def test():
|
| 177 |
"""Test endpoint to verify setup"""
|