Skip to main content

Azdls

Azure Data Lake Storage Gen2 Support.

As known as abfs, azdls or azdls.

This service will visit the ABFS URI supported by Azure Data Lake Storage Gen2.

Notes

azdls is different from azfile service which used to visit Azure File Storage.

Capabilities

This service can be used to:

  • stat
  • read
  • write
  • create_dir
  • delete
  • copy
  • rename
  • list
  • scan
  • presign
  • blocking

Configuration

  • root: Set the work dir for backend.
  • filesystem: Set the filesystem name for backend.
  • endpoint: Set the endpoint for backend.
  • account_name: Set the account_name for backend.
  • account_key: Set the account_key for backend.

Refer to public API docs for more information.

Example

Via Builder

use std::sync::Arc;

use anyhow::Result;
use opendal::services::Azdls;
use opendal::Operator;

#[tokio::main]
async fn main() -> Result<()> {
// Create azdls backend builder.
let mut builder = Azdls::default();
// Set the root for azdls, all operations will happen under this root.
//
// NOTE: the root must be absolute path.
builder.root("/path/to/dir");
// Set the filesystem name, this is required.
builder.filesystem("test");
// Set the endpoint, this is required.
//
// For examples:
// - "https://accountname.dfs.core.windows.net"
builder.endpoint("https://accountname.dfs.core.windows.net");
// Set the account_name and account_key.
//
// 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.account_name("account_name");
builder.account_key("account_key");

// `Accessor` provides the low level APIs, we will use `Operator` normally.
let op: Operator = Operator::new(builder)?.finish();

Ok(())
}

Via Config

use anyhow::Result;
use opendal::Operator;
use opendal::Scheme;
use std::collections::HashMap;

#[tokio::main]
async fn main() -> Result<()> {
let mut map = HashMap::new();
map.insert("root".to_string(), "/path/to/dir".to_string());
map.insert("filesystem".to_string(), "test".to_string());
map.insert("endpoint".to_string(), "https://accountname.dfs.core.windows.net".to_string());
map.insert("account_name".to_string(), "account_name".to_string());
map.insert("account_key".to_string(), "account_key".to_string());

let op: Operator = Operator::via_map(Scheme::Azdls, map)?;
Ok(())
}