chainlit
chainlit copied to clipboard
Added LocalStorageClient and a new /storage/file API route
This PR adds LocalStorageClient supporting local filesystem storage, and a new /storage/file API route to allow files serving via ChainLit backend itself, since local storage cannot provide a pre-signed URL for direct files downloads.
Problem statement: 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. Yes, MinIO exists and can be co-deployed and used with S3 storage provider, 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.
Basic files upload and download capability can be well handled by ChainLit itself.