-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
Is your feature request related to a problem? Please describe.
Persistence requires a storage provider. But a dependency on Cloud Storage introduces complexity for fully local deployments (e.g. docker) that is not already in AWS/Azure/GCS.
Basic files upload and download capability can be well handled by ChainLit itself should be a viable option.
Describe the solution you'd like
-
New class LocalStorageClient, conditinoally activated based on an env var (APP_LOCAL_STORAGE_PATH)
-
A new /storage/files API route endpoint for direct files retrieval by authorized users, since local storage can't generate pre-signed URLs the way cloud storage can. For read url, the local storage provider shall generate a relative URL directly referencing that new route.
Describe alternatives you've considered
Co-deploying MinIO to implement S3-compatible "cloud" local storage. Yes, MinIO exists and can be co-deployed and used with an S3 storage provider class, but it adds substantial complexity to the deployment; Not only for MinIO itself but also for reverse proxying scenarios (ingress), etc. It's not the same level of complexity as having a Postgre database that's trivial.