from __future__ import annotations from typing import Any from app.adapters.storage.base import StorageAdapter from app.adapters.storage.local import LocalStorageAdapter from app.adapters.storage.s3 import S3StorageAdapter from app.adapters.storage.webdav import WebDAVStorageAdapter def build_storage_adapter(backend_type: str, config: dict[str, Any]) -> StorageAdapter: if backend_type == "local_directory": return LocalStorageAdapter(config["base_path"]) if backend_type == "s3": return S3StorageAdapter(config) if backend_type == "webdav": return WebDAVStorageAdapter(config) raise ValueError(f"Unsupported backend type: {backend_type}")