""" Storage backend factory for DocuVault. Mirrors backend/ai/__init__.py — exposes a get_storage_backend() factory that returns the configured StorageBackend implementation. Phase 1 always returns MinIOBackend. Phase 5 will extend this factory to support OneDrive, Google Drive, Nextcloud, and WebDAV backends. """ from storage.base import StorageBackend from storage.minio_backend import MinIOBackend from config import settings def get_storage_backend() -> StorageBackend: """Return a MinIOBackend instance configured from config.settings. secure=False is correct for Docker internal HTTP traffic between containers (RESEARCH.md Pattern 3). public_endpoint is the browser-resolvable hostname for presigned PUT URLs. RESEARCH.md Finding 3 — dual-client pattern: internal endpoint for all server-side operations; public endpoint for generate_presigned_put_url only. """ public_ep = settings.minio_public_endpoint or None return MinIOBackend( endpoint=settings.minio_endpoint, access_key=settings.minio_access_key, secret_key=settings.minio_secret_key, bucket=settings.minio_bucket, secure=False, public_endpoint=public_ep, )