Spaces:
No application file
No application file
| from fastapi import FastAPI, File, UploadFile, HTTPException | |
| from firebase_admin import credentials, storage | |
| import firebase_admin | |
| from uuid import uuid4 | |
| from fastapi import APIRouter | |
| from config.firebase_cfg import init_firebase | |
| init_firebase() | |
| upload_router = APIRouter() | |
| async def upload_pdf(file: UploadFile = File(...)): | |
| if file.content_type != "application/pdf": | |
| raise HTTPException(status_code=400, detail="must be PDF file") | |
| file_name = f"{uuid4()}.pdf" | |
| bucket = storage.bucket() | |
| blob = bucket.blob(file_name) | |
| blob.upload_from_file(file.file, content_type="application/pdf") | |
| blob.make_public() | |
| file_url = blob.public_url | |
| return {"file_url": file_url} | |
| async def upload_docs(file: UploadFile = File(...)): | |
| if file.content_type != "application/docs": | |
| raise HTTPException(status_code=400, detail="must be DOCS file") | |
| file_name = f"{uuid4()}.docs" | |
| bucket = storage.bucket() | |
| blob = bucket.blob(file_name) | |
| blob.upload_from_file(file.file, content_type="application/docs") | |
| blob.make_public() | |
| file_url = blob.public_url | |
| return {"file_url": file_url} | |
| async def delete_file(file_name: str): | |
| try: | |
| bucket = storage.bucket() | |
| blob = bucket.blob(file_name) | |
| if not blob.exists(): | |
| raise HTTPException(status_code=404, detail="File not found") | |
| blob.delete() | |
| return {"message": f"File {file_name} deleted successfully"} | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=f"An error occurred: {str(e)}") | |
| # url = "http://127.0.0.1:8000/delete_file" | |
| # data = {"file_name": "example.pdf"} | |
| # response = requests.post(url, json=data) |