Apache OpenDAL自由、轻松、高效地访问数据

联合创作 · 2023-09-18 18:56

OpenDAL 提供一个统一、简单、高效、可靠、可观察的数据访问层,让开发者可以无缝地使用不同的存储服务,并享受到最佳的用户体验。

OpenDAL 不仅简化了不同存储服务的接口,还提供自动重试、请求优化和可观察性等特性。开发者只需要使用 OpenDAL 就可以无痛访问数十种存储服务,而无需了解和掌握特定 SDK 的细节。

特性:

  • 支持多种存储服务,包括本地文件系统、HDFS、S3、OSS 数十种服务等。
  • 提供统一的数据访问接口,无需关心底层存储细节。
  • 支持多种常用数据操作,包括 read write list 等。
  • 支持自动重试、请求优化、可观察性机制。
  • 零成本,直接映射到 API 调用。
  • 跨语言 bindings: Python, Node.js, C (working on) 等

快速开始

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(())
}

更多示例可查看文档

浏览 2
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报