pub struct Azblob { /* private fields */ }
Expand description
Azure Storage Blob services support.
Capabilities
This service can be used to:
- read
- write
- list
- scan
- presign
- blocking
Configuration
root
: Set the work dir for backend.container
: Set the container 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
This example works on Azurite for local developments.
Start local blob service
docker run -p 10000:10000 mcr.microsoft.com/azure-storage/azurite
az storage container create --name test --connection-string "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;"
Init OpenDAL Operator
Via Builder
use std::sync::Arc;
use anyhow::Result;
use opendal::services::Azblob;
use opendal::Operator;
#[tokio::main]
async fn main() -> Result<()> {
// Create azblob backend builder.
let mut builder = Azblob::default();
// Set the root for azblob, all operations will happen under this root.
//
// NOTE: the root must be absolute path.
builder.root("/path/to/dir");
// Set the container name, this is required.
builder.container("test");
// Set the endpoint, this is required.
//
// For examples:
// - "http://127.0.0.1:10000/devstoreaccount1"
// - "https://accountname.blob.core.windows.net"
builder.endpoint("http://127.0.0.1:10000/devstoreaccount1");
// 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("devstoreaccount1");
builder.account_key("Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==");
// `Accessor` provides the low level APIs, we will use `Operator` normally.
let op: Operator = Operator::new(builder)?.finish();
Ok(())
}
Implementations§
source§impl AzblobBuilder
impl AzblobBuilder
sourcepub fn root(&mut self, root: &str) -> &mut Self
pub fn root(&mut self, root: &str) -> &mut Self
Set root of this backend.
All operations will happen under this root.
sourcepub fn endpoint(&mut self, endpoint: &str) -> &mut Self
pub fn endpoint(&mut self, endpoint: &str) -> &mut Self
Set endpoint of this backend.
Endpoint must be full uri, e.g.
- Azblob:
https://accountname.blob.core.windows.net
- Azurite:
http://127.0.0.1:10000/devstoreaccount1
sourcepub fn account_name(&mut self, account_name: &str) -> &mut Self
pub fn account_name(&mut self, account_name: &str) -> &mut Self
Set account_name of this backend.
- If account_name is set, we will take user’s input first.
- If not, we will try to load it from environment.
sourcepub fn account_key(&mut self, account_key: &str) -> &mut Self
pub fn account_key(&mut self, account_key: &str) -> &mut Self
Set account_key of this backend.
- If account_key is set, we will take user’s input first.
- If not, we will try to load it from environment.
sourcepub fn sas_token(&mut self, sas_token: &str) -> &mut Self
pub fn sas_token(&mut self, sas_token: &str) -> &mut Self
Set sas_token of this backend.
- If sas_token is set, we will take user’s input first.
- If not, we will try to load it from environment.
See Grant limited access to Azure Storage resources using shared access signatures (SAS) for more info.
sourcepub fn http_client(&mut self, client: HttpClient) -> &mut Self
pub fn http_client(&mut self, client: HttpClient) -> &mut Self
Specify the http client that used by this service.
Notes
This API is part of OpenDAL’s Raw API. HttpClient
could be changed
during minor updates.
sourcepub fn from_connection_string(conn: &str) -> Result<Self>
pub fn from_connection_string(conn: &str) -> Result<Self>
from_connection_string will make a builder from connection string
connection string looks like:
DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;
AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;
BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;
TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;
Or
DefaultEndpointsProtocol=https;
AccountName=storagesample;
AccountKey=<account-key>;
EndpointSuffix=core.chinacloudapi.cn;
For reference: Configure Azure Storage connection strings
Note
connection string only configures the endpoint, account name and account key. User still needs to configure bucket names.
Trait Implementations§
source§impl Builder for AzblobBuilder
impl Builder for AzblobBuilder
source§impl Clone for AzblobBuilder
impl Clone for AzblobBuilder
source§fn clone(&self) -> AzblobBuilder
fn clone(&self) -> AzblobBuilder
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more