Added serving of images that are in the DB

This commit is contained in:
ManInDark 2023-08-06 17:40:19 +02:00
parent d48f566389
commit 9cfc7511b4
No known key found for this signature in database
GPG Key ID: 72EC12A5B2D62779

View File

@ -1,6 +1,7 @@
from typing import List from typing import List
from fastapi import Depends, FastAPI, HTTPException, Response, File from fastapi import Depends, FastAPI, HTTPException, Response, File
from fastapi.responses import FileResponse
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from easydiffusion.easydb import crud, models, schemas from easydiffusion.easydb import crud, models, schemas
@ -88,6 +89,18 @@ def init():
result.data = base64.encodestring(result.data) result.data = base64.encodestring(result.data)
return result return result
@server_api.get("/image/{image_path:path}")
def get_image(image_path: str, db: Session = Depends(get_db)):
from easydiffusion.easydb.mappings import Image
image_path = image_path.replace("/", "\\")
amount = len(db.query(Image).filter(Image.path == image_path).all())
print(image_path, amount)
if amount > 0:
image = db.query(Image).filter(Image.path == image_path).first()
return FileResponse(image.path)
else:
raise HTTPException(status_code=404, detail="Image not found")
def get_filename_from_url(url): def get_filename_from_url(url):
path = urlparse(url).path path = urlparse(url).path