Crates.io | shuttle-opendal |
lib.rs | shuttle-opendal |
version | 0.49.0 |
source | src |
created_at | 2024-02-14 08:32:29.088037 |
updated_at | 2024-11-12 14:57:03.371077 |
description | Plugin to obtain a client connected to Apache OpenDAL |
homepage | |
repository | https://github.com/shuttle-hq/shuttle |
max_upload_size | |
id | 1139635 |
size | 6,904 |
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.
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.
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 {}
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.