shuttle-opendal

Crates.ioshuttle-opendal
lib.rsshuttle-opendal
version0.48.0
sourcesrc
created_at2024-02-14 08:32:29.088037
updated_at2024-10-01 14:36:14.937301
descriptionPlugin to obtain a client connected to Apache OpenDAL
homepage
repositoryhttps://github.com/shuttle-hq/shuttle
max_upload_size
id1139635
size6,904
Release (github:shuttle-hq:release)

documentation

README

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.

Commit count: 1381

cargo fmt