feat(storage): add local storage framework
This commit is contained in:
parent
228da8f814
commit
964b545bc5
24 changed files with 890 additions and 98 deletions
|
|
@ -1,3 +1,6 @@
|
|||
from typing import Any
|
||||
|
||||
from pydantic import model_validator
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
|
||||
|
||||
|
|
@ -15,6 +18,9 @@ class Settings(BaseSettings):
|
|||
initial_admin_password: str | None = None
|
||||
initial_admin_first_name: str = ""
|
||||
initial_admin_last_name: str = ""
|
||||
storage_provider: str = "local"
|
||||
storage_base_path: str = "/data/storage"
|
||||
storage_max_upload_mb: int = 50
|
||||
knowledge_storage_path: str = "/data/knowledge"
|
||||
knowledge_max_upload_mb: int = 50
|
||||
|
||||
|
|
@ -23,5 +29,19 @@ class Settings(BaseSettings):
|
|||
extra="ignore",
|
||||
)
|
||||
|
||||
@model_validator(mode="before")
|
||||
@classmethod
|
||||
def apply_legacy_storage_settings(cls, values: Any) -> Any:
|
||||
if not isinstance(values, dict):
|
||||
return values
|
||||
|
||||
if "storage_base_path" not in values and "knowledge_storage_path" in values:
|
||||
values["storage_base_path"] = values["knowledge_storage_path"]
|
||||
|
||||
if "storage_max_upload_mb" not in values and "knowledge_max_upload_mb" in values:
|
||||
values["storage_max_upload_mb"] = values["knowledge_max_upload_mb"]
|
||||
|
||||
return values
|
||||
|
||||
|
||||
settings = Settings()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue