Cache thumbnails
This commit is contained in:
@@ -7,4 +7,5 @@ aiosqlite
|
||||
passlib
|
||||
requests
|
||||
python-multipart
|
||||
Pillow
|
||||
Pillow
|
||||
joblib
|
||||
@@ -9,6 +9,7 @@ import subprocess
|
||||
from fastapi import APIRouter, Depends, FastAPI, File, UploadFile, status
|
||||
from fastapi.responses import FileResponse
|
||||
from fastapi_jwt_auth import AuthJWT
|
||||
from joblib import Memory
|
||||
from pydantic import BaseModel
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from starlette.responses import StreamingResponse
|
||||
@@ -21,7 +22,11 @@ from src.models.sign import Sign
|
||||
from src.models.signvideo import SignVideo, SignVideoOut
|
||||
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):
|
||||
proc = subprocess.run(["ffmpeg", "-i", video_path, "-ss", "00:00:02.000", "-vframes", "1", "-f", "image2pipe", "-"], stdout=subprocess.PIPE)
|
||||
byte_data = proc.stdout
|
||||
|
||||
@@ -19,6 +19,7 @@ DB_SQLITE_PATH: str = os.getenv("DB_SQLITE_PATH", "./sqlite.db")
|
||||
|
||||
"""Storage"""
|
||||
DATA_PATH: str = os.getenv("DATA_PATH", "data")
|
||||
CACHE_PATH: str = os.getenv("CACHE_PATH", "cache")
|
||||
|
||||
|
||||
"""Authentication"""
|
||||
|
||||
@@ -12,6 +12,7 @@ services:
|
||||
DB_USE_SQLITE: "true"
|
||||
DB_SQLITE_PATH: "/data/sqlite.db"
|
||||
DATA_PATH: "/data/videos"
|
||||
CACHE_PATH: "/data/cache"
|
||||
|
||||
JWT_SECRET_KEY: "e8ae5c5d5cd7f0f1bec2303ad04a7c80f09f759d480a7a5faff5a6bbaa4078d0"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user