| tag | 24c9a54c9ea9d79f8d1d2b7df776cb3416648a46 | |
|---|---|---|
| tagger | Xuanwo <github@xuanwo.io> | Tue Mar 08 15:39:36 2022 +0800 |
| object | fcdcf71fd15c361deec2cb30cabecce083dc2930 |
Release v0.2.0
| commit | fcdcf71fd15c361deec2cb30cabecce083dc2930 | [log] [tgz] |
|---|---|---|
| author | Xuanwo <github@xuanwo.io> | Tue Mar 08 15:39:14 2022 +0800 |
| committer | GitHub <noreply@github.com> | Tue Mar 08 15:39:14 2022 +0800 |
| tree | e9aadd70bfa06897727fc6edf8f84da1b0437124 | |
| parent | 5e6221390ff0f68f1569b3119a4404227257c4cc [diff] |
Bump to version 0.2.0 (#115) Signed-off-by: Xuanwo <github@xuanwo.io>
Open Data Access Layer that connect the whole world together.
OpenDAL is in alpha stage and has been early adopted by databend. Welcome any feedback at Discussions!
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(()) }
More examples could be found at examples.
Check out the CONTRIBUTING.md guide for more details on getting started with contributing to this project.
OpenDAL is licensed under Apache 2.0.