Added LocalStorageClient and a new /storage/file API route #2495
+849
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.