Spaces:
Running
Running
from fastapi import FastAPI, File, UploadFile | |
from fastapi.middleware.gzip import GZipMiddleware | |
from fastapi.responses import FileResponse | |
import os | |
import shutil | |
app = FastAPI() | |
# Enable gzip compression | |
app.add_middleware(GZipMiddleware, minimum_size=1000) | |
# Directory to store uploaded files | |
UPLOAD_DIR = "/app/uploads" | |
os.makedirs(UPLOAD_DIR, exist_ok=True) | |
async def upload_file(file: UploadFile = File(...)): | |
file_path = os.path.join(UPLOAD_DIR, file.filename) | |
with open(file_path, "wb") as buffer: | |
shutil.copyfileobj(file.file, buffer) | |
return {"filename": file.filename} | |
async def download_file(filename: str): | |
file_path = os.path.join(UPLOAD_DIR, filename) | |
if os.path.exists(file_path): | |
return FileResponse(file_path, media_type='application/octet-stream', filename=filename) | |
return {"error": "File not found"} | |