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
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.
Boxed futures::Stream<Item = Result<Object>>
returned by underlying backend.