This commit is contained in:
@@ -3,7 +3,7 @@ import aiohttp
|
|||||||
from fastapi import FastAPI, HTTPException, Request, UploadFile
|
from fastapi import FastAPI, HTTPException, Request, UploadFile
|
||||||
from fastapi.responses import FileResponse
|
from fastapi.responses import FileResponse
|
||||||
from fastapi import Depends, FastAPI
|
from fastapi import Depends, FastAPI
|
||||||
from fastapi.security import OAuth2PasswordBearer
|
from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer
|
||||||
from pyrate_limiter import Duration, Limiter, Rate
|
from pyrate_limiter import Duration, Limiter, Rate
|
||||||
from fastapi_limiter.depends import RateLimiter
|
from fastapi_limiter.depends import RateLimiter
|
||||||
from fastapi import Depends
|
from fastapi import Depends
|
||||||
@@ -33,7 +33,7 @@ logging.basicConfig(
|
|||||||
handlers=[file_handler, console_handler],
|
handlers=[file_handler, console_handler],
|
||||||
)
|
)
|
||||||
|
|
||||||
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
|
security = HTTPBearer()
|
||||||
SECRET = os.getenv("SECRET")
|
SECRET = os.getenv("SECRET")
|
||||||
|
|
||||||
@asynccontextmanager
|
@asynccontextmanager
|
||||||
@@ -123,9 +123,9 @@ async def fetch_images():
|
|||||||
await asyncio.sleep(86400) # Sleep for 24 hours
|
await asyncio.sleep(86400) # Sleep for 24 hours
|
||||||
|
|
||||||
@app.post("/upload", dependencies=[Depends(RateLimiter(limiter=limiter))])
|
@app.post("/upload", dependencies=[Depends(RateLimiter(limiter=limiter))])
|
||||||
async def upload_image(file: UploadFile, request: Request, token: str = Depends(oauth2_scheme)):
|
async def upload_image(file: UploadFile, request: Request, credentials: HTTPAuthorizationCredentials = Depends(security)):
|
||||||
# if SECRET isn't set, return Unauthrorized
|
# if SECRET isn't set, return Unauthrorized
|
||||||
if token != SECRET or token is None:
|
if credentials.credentials != SECRET or credentials.credentials is None:
|
||||||
raise HTTPException(status_code=401, detail="Unauthorized")
|
raise HTTPException(status_code=401, detail="Unauthorized")
|
||||||
if not file:
|
if not file:
|
||||||
raise HTTPException(status_code=400, detail="No file uploaded")
|
raise HTTPException(status_code=400, detail="No file uploaded")
|
||||||
|
|||||||
Reference in New Issue
Block a user