DocHub/backend/app/dependencies.py
Tianyang 4c19fad561 refactor: replace Garage/S3 storage with local filesystem storage
Single-node deployment doesn't benefit from S3 abstraction overhead;
LocalFileClient keeps the same interface DocumentService depends on,
backed by a STORAGE_DIR volume mount instead of a separate Garage service.
2026-08-01 16:30:02 +08:00

31 lines
849 B
Python

from functools import lru_cache
import meilisearch
from app.config import settings
from app.document_service import DocumentService
from app.local_file_client import LocalFileClient
from app.search_client import SearchClient
@lru_cache
def _get_file_client() -> LocalFileClient:
return LocalFileClient(settings.storage_dir)
@lru_cache
def _get_meilisearch_sdk() -> meilisearch.Client:
return meilisearch.Client(settings.meilisearch_host, settings.meilisearch_api_key)
@lru_cache
def get_document_service() -> DocumentService:
file_client = _get_file_client()
search_client = SearchClient(_get_meilisearch_sdk(), settings.meilisearch_index)
return DocumentService(file_client, search_client)
@lru_cache
def get_search_client() -> SearchClient:
return SearchClient(_get_meilisearch_sdk(), settings.meilisearch_index)