Spaces:
Running
Running
File size: 920 Bytes
7aee092 7ab93cb 7aee092 ce74c54 7aee092 7ab93cb ce74c54 7aee092 ce74c54 7aee092 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
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)
@app.post("/upload/")
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}
@app.get("/download/{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"}
|