Spaces:
No application file
No application file
File size: 1,824 Bytes
b934683 |
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
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()
@upload_router.post("/upload_pdf")
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}
@upload_router.post("/upload_docs")
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}
@upload_router.post("/delete_file")
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) |