Skip to content

Locol Storage Provider as an alternative to cloud storage providers #2496

@DmitriyAlergant

Description

@DmitriyAlergant

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.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions