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) |