commit | cb52dbde2067f1450035357fd8ca71a12077e2a2 | [log] [tgz] |
---|---|---|
author | Xuanwo <github@xuanwo.io> | Sat Mar 18 19:25:28 2023 +0800 |
committer | GitHub <noreply@github.com> | Sat Mar 18 19:25:28 2023 +0800 |
tree | cd81319de5836d2d2c258915ea133c501a1013ca | |
parent | 0ac2b78a04a40459eed85f29ffbb03cdcdfcb79f [diff] |
docs: Reorganize README of core and whole project (#1676) * docs: Reorganize README of core and whole project Signed-off-by: Xuanwo <github@xuanwo.io> * Remove project from core Signed-off-by: Xuanwo <github@xuanwo.io> --------- Signed-off-by: Xuanwo <github@xuanwo.io>
Open Data Access Layer: Access data freely, painlessly, and efficiently
use opendal::Result; use opendal::layers::LoggingLayer; use opendal::services; use opendal::Operator; #[tokio::main] async fn main() -> Result<()> { // Pick a builder and configure it. let mut builder = services::S3::default(); builder.bucket("test"); // Init an operator let op = Operator::create(builder)? // Init with logging layer enabled. .layer(LoggingLayer::default()) .finish(); // Write data op.write("hello.txt", "Hello, World!").await?; // Read data let bs = op.read("hello.txt").await?; // Fetch metadata let meta = op.stat("hello.txt").await?; let mode = meta.mode(); let length = meta.content_length(); // Delete op.delete("hello.txt").await?; Ok(()) }
import asyncio async def main(): op = opendal.AsyncOperator("fs", root="/tmp") await op.write("test.txt", b"Hello World") print(await op.read("test.txt")) asyncio.run(main())
import { Operator } from "opendal"; async function main() { const op = new Operator("fs", { root: "/tmp" }); await op.write("test", "Hello, World!"); const bs = await op.read("test"); console.log(new TextDecoder().decode(bs)); const meta = await op.stat("test"); console.log(`contentLength: ${meta.contentLength}`); }
Submit issues for bug report or asking questions in the Discussions forum.
Talk to develops at discord.
Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0