19 breaking releases
| 0.57.0 | Sep 11, 2025 |
|---|---|
| 0.56.0 | Jul 2, 2025 |
| 0.55.0 | May 21, 2025 |
| 0.53.0 | Mar 12, 2025 |
| 0.42.0 | Mar 18, 2024 |
#13 in #shuttle-service
942 downloads per month
24KB
182 lines
Shuttle OpenDAL
This plugin allows services to connect to Apache OpenDAL™. OpenDAL is a data access layer that allows users to easily and efficiently retrieve data from various storage services in a unified way.
Users can connect OpenDAL to access data from a variety of storage services, including: s3, azblob, gcs, oss and so on.
Usage
IMPORTANT: Currently Shuttle isn't able to provision a storage for you (yet). This means you will have to create the storage service first and setup the secrets accordingly.
Add shuttle-opendal to the dependencies for your service by running cargo add shuttle-opendal.
This resource will be provided by adding the shuttle_opendal::Opendal attribute to your Shuttle main decorated function.
It returns a opendal::Operator for you to connect the storage service.
Example
In the case of an Axum server, your main function will look like this:
use opendal::Operator;
use shuttle_axum::ShuttleAxum;
#[shuttle_runtime::main]
async fn app(
#[shuttle_opendal::Opendal(scheme = "s3")]
storage: Operator,
) -> ShuttleAxum {}
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| scheme | str |
"memory" |
The scheme of the storage service to connect to. |
All secrets are loaded from your Secrets.toml file.
For instance, when using s3, you can configure the scheme to s3 and specify the secrets: bucket, access_key_id, and secret_access_key.
Visit the OpenDAL Documentation for more information on how to setup the secrets for the storage service you want to connect to.
Dependencies
~13–21MB
~358K SLoC