Expand description

OpenDAL is the Open Data Access Layer that connect the whole world together.

Example

use anyhow::Result;
use futures::AsyncReadExt;
use futures::StreamExt;
use opendal::services::fs;
use opendal::ObjectMode;
use opendal::Operator;

#[tokio::main]
async fn main() -> Result<()> {
    let op = Operator::new(fs::Backend::build().root("/tmp").finish().await?);

    let o = op.object("test_file");

    // Write data info file;
    let w = o.writer();
    let n = w
       .write_bytes("Hello, World!".to_string().into_bytes())
        .await?;

    // Read data from file;
    let mut r = o.reader();
    let mut buf = vec![];
    let n = r.read_to_end(&mut buf).await?;

    // Read range from file;
    let mut r = o.range_reader(10, 1);
    let mut buf = vec![];
    let n = r.read_to_end(&mut buf).await?;

    // Get file's Metadata
   let meta = o.metadata().await?;

    // List current dir.
    let mut obs = op.objects("").map(|o| o.expect("list object"));
    while let Some(o) = obs.next().await {
        let meta = o.metadata().await?;
        let path = meta.path();
        let mode = meta.mode();
        let length = meta.content_length();
    }

    // Delete file.
    o.delete().await?;

    Ok(())
}

Modules

Different credential types that used to signing requests.

Errors that returned by OpenDAL

Operations used by Accessor

Reader related helper tools

Providing specific services support.

Structs

Metadata carries all object metadata.

Handler for all object related operations.

Handler for listing object under a dir.

User-facing APIs for object and object streams.

Reader is used for reading data from underlying backend.

Writer is used to write data into underlying backend.

Enums

ObjectMode represents the corresponding object’s mode.

Backends that OpenDAL supports

Traits

Underlying trait of all backends for implementors.

Layer is used to intercept the operations on the underlying storage.

Type Definitions

BoxedAsyncReader is a boxed AsyncRead.