Module opendal::services::oss

source ·
Expand description

Aliyun Object Storage Sevice support

Configuration

  • root: Set the work dir for backend.
  • bucket: Set the container name for backend.
  • endpoint: Set the endpoint for backend.
  • access_key_id: Set the access_key_id for backend.
  • access_key_secret: Set the access_key_secret for backend.
  • role_arn: Set the role of backend.
  • oidc_token: Set the oidc_token for backend.
  • allow_anonymous: Set the backend access OSS in anonymous way.

Refer to Builder’s public API docs for more information.

Environment

  • OPENDAL_OSS_ROOT
  • OPENDAL_OSS_BUCKET
  • OPENDAL_OSS_ENDPOINT
  • OPENDAL_OSS_ACCESS_KEY_ID
  • OPENDAL_OSS_ACCESS_KEY_SECRET
  • OPENDAL_OSS_ROLE_ARN
  • OPENDAL_OSS_OIDC_TOKEN
  • OPENDAL_OSS_ALLOW_ANONYMOUS

Example

Via Environment

Set environment correctly:

export OPENDAL_OSS_ROOT=/path/to/dir/
export OPENDAL_OSS_BUCKET=test
export OPENDAL_OSS_ENDPOINT=https://oss-cn-beijing.aliyuncs.com
export OPENDAL_OSS_ACCESS_KEY_ID=access_key_id
export OPENDAL_OSS_ACCESS_KEY_SECRET=access_key_secret
use std::sync::Arc;

use anyhow::Result;
use opendal::Object;
use opendal::Operator;
use opendal::Scheme;

#[tokio::main]
async fn main() -> Result<()> {
    let op: Operator = Operator::from_env(Scheme::Oss)?;

    // Create an object handle to start operation on object.
    let _: Object = op.object("test_file");

    Ok(())
}

Via Builder

use std::sync::Arc;

use anyhow::Result;
use opendal::services::oss;
use opendal::Object;
use opendal::Operator;

#[tokio::main]
async fn main() -> Result<()> {
    // Create OSS backend builder.
    let mut builder = oss::Builder::default();
    // Set the root for oss, all operations will happen under this root.
    //
    // NOTE: the root must be absolute path.
    builder.root("/path/to/dir");
    // Set the bucket name, this is required.
    builder.bucket("test");
    // Set the endpoint.
    //
    // For example:
    // - "https://oss-ap-northeast-1.aliyuncs.com"
    // - "https://oss-hangzhou.aliyuncs.com"
    builder.endpoint("https://oss-cn-beijing.aliyuncs.com");
    // Set the access_key_id and access_key_secret.
    //
    // OpenDAL will try load credential from the env.
    // If credential not set and no valid credential in env, OpenDAL will
    // send request without signing like anonymous user.
    builder.access_key_id("access_key_id");
    builder.access_key_secret("access_key_secret");

    let op: Operator = Operator::new(builder.build()?);

    // Create an object handle to start operation on object.
    let _: Object = op.object("test_file");

    Ok(())
}

Structs

Builder for Aliyun Object Storage Service