Cache thumbnails

This commit is contained in:
2023-03-01 21:03:54 +01:00
parent e41ea74d6d
commit fd52dee435
4 changed files with 9 additions and 1 deletions

View File

@@ -8,3 +8,4 @@ passlib
requests requests
python-multipart python-multipart
Pillow Pillow
joblib

View File

@@ -9,6 +9,7 @@ import subprocess
from fastapi import APIRouter, Depends, FastAPI, File, UploadFile, status from fastapi import APIRouter, Depends, FastAPI, File, UploadFile, status
from fastapi.responses import FileResponse from fastapi.responses import FileResponse
from fastapi_jwt_auth import AuthJWT from fastapi_jwt_auth import AuthJWT
from joblib import Memory
from pydantic import BaseModel from pydantic import BaseModel
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from starlette.responses import StreamingResponse from starlette.responses import StreamingResponse
@@ -21,7 +22,11 @@ from src.models.sign import Sign
from src.models.signvideo import SignVideo, SignVideoOut from src.models.signvideo import SignVideo, SignVideoOut
from src.utils.cryptography import verify_password from src.utils.cryptography import verify_password
# Create a Memory object that caches data to the specified directory
cache_dir = settings.CACHE_PATH
memory = Memory(location=cache_dir, verbose=0)
@memory.cache
def extract_thumbnail(video_path): def extract_thumbnail(video_path):
proc = subprocess.run(["ffmpeg", "-i", video_path, "-ss", "00:00:02.000", "-vframes", "1", "-f", "image2pipe", "-"], stdout=subprocess.PIPE) proc = subprocess.run(["ffmpeg", "-i", video_path, "-ss", "00:00:02.000", "-vframes", "1", "-f", "image2pipe", "-"], stdout=subprocess.PIPE)
byte_data = proc.stdout byte_data = proc.stdout

View File

@@ -19,6 +19,7 @@ DB_SQLITE_PATH: str = os.getenv("DB_SQLITE_PATH", "./sqlite.db")
"""Storage""" """Storage"""
DATA_PATH: str = os.getenv("DATA_PATH", "data") DATA_PATH: str = os.getenv("DATA_PATH", "data")
CACHE_PATH: str = os.getenv("CACHE_PATH", "cache")
"""Authentication""" """Authentication"""

View File

@@ -12,6 +12,7 @@ services:
DB_USE_SQLITE: "true" DB_USE_SQLITE: "true"
DB_SQLITE_PATH: "/data/sqlite.db" DB_SQLITE_PATH: "/data/sqlite.db"
DATA_PATH: "/data/videos" DATA_PATH: "/data/videos"
CACHE_PATH: "/data/cache"
JWT_SECRET_KEY: "e8ae5c5d5cd7f0f1bec2303ad04a7c80f09f759d480a7a5faff5a6bbaa4078d0" JWT_SECRET_KEY: "e8ae5c5d5cd7f0f1bec2303ad04a7c80f09f759d480a7a5faff5a6bbaa4078d0"