add profile picture support and rearrange things to be slightly more sane
This commit is contained in:
parent
9148e2068f
commit
15e1018476
6 changed files with 100 additions and 10 deletions
|
|
@ -1,21 +1,13 @@
|
|||
from fastapi import FastAPI, UploadFile, Request, Depends
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from minio import Minio
|
||||
import mimetypes
|
||||
import re
|
||||
|
||||
from .auth import JWTBearer
|
||||
from .sql import SessionMaker, Uploads
|
||||
from . import util
|
||||
import config
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
|
||||
minioClient = Minio(
|
||||
config.MINIO_ADDR,
|
||||
access_key=config.MINIO_ACCESS_KEY,
|
||||
secret_key=config.MINIO_SECRET_KEY,
|
||||
)
|
||||
from . import endpoints
|
||||
|
||||
app = FastAPI()
|
||||
app.add_middleware(
|
||||
|
|
@ -26,6 +18,8 @@ app.add_middleware(
|
|||
allow_headers=["*"],
|
||||
)
|
||||
|
||||
app.include_router(endpoints.router)
|
||||
|
||||
@app.post("/upload", dependencies=[Depends(JWTBearer())])
|
||||
async def upload(file: UploadFile, request: Request):
|
||||
if file.size > config.MAX_FILE_SIZE:
|
||||
|
|
@ -40,11 +34,12 @@ async def upload(file: UploadFile, request: Request):
|
|||
existing.expiry = datetime.now() + timedelta(days=7)
|
||||
else:
|
||||
mime = mimetypes.guess_type(safeFilename)
|
||||
minioClient.put_object("uploads", sha, file.file, file.size, content_type=mime[0])
|
||||
util.minioClient.put_object("uploads", sha, file.file, file.size, content_type=mime[0])
|
||||
up = Uploads(hash=sha)
|
||||
session.add(up)
|
||||
session.commit()
|
||||
return {"url": f"https://{config.MINIO_ADDR}/uploads/{sha}/{safeFilename}"}
|
||||
|
||||
|
||||
|
||||
__all__ = ["sql", "auth", "util"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue