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
- 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
- Rust
- Node.js
- Python
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(())
}
import { Operator } from "opendal";
async function main() {
const op = new Operator("azdls", {
root: "/path/to/dir",
filesystem: "test",
endpoint: "https://accountname.dfs.core.windows.net",
account_name: "account_name",
account_key: "account_key",
});
}
import opendal
op = opendal.Operator("azdls",
root="/path/to/dir",
filesystem="test",
endpoint="https://accountname.dfs.core.windows.net",
account_name="account_name",
account_key="account_key",
)