Expand description
OpenDAL is the Open Data Access Layer that connect the whole world together.
Supported Services
Services | Description |
---|---|
fs | POSIX alike file system. |
memory | In memory backend support. |
s3 | AWS S3 alike services. |
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 _ = o.write("Hello, World!").await?;
// Read data from file;
let bs = o.read().await?;
// Read range from file;
let bs = o.range_read(1..=11).await?;
// Get file's Metadata
let meta = o.metadata().await?;
// List dir.
let mut obs = op.objects("").await?.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
Providing IO utils like into_sink
, into_stream
.
Reader related helper tools
Providing specific services support.
Structs
Metadata carries all object metadata.
Handler for all object related operations.
User-facing APIs for object and object streams.
Enums
ObjectMode represents the corresponding object’s mode.
Backends that OpenDAL supports
Traits
Underlying trait of all backends for implementors.
BytesRead represents a reader of bytes.
BytesSink represents a sink of bytes.
BytesStream represents a stream of bytes.
BytesWrite represents a writer of bytes.
Layer is used to intercept the operations on the underlying storage.
ObjectStream represents a stream of object.
Type Definitions
BytesReader is a boxed dyn BytesRead
.
BytesWriter is a boxed dyn BytesWrite
.
ObjectStreamer is a boxed dyn ObjectStream