#azure-storage-blobs #storage #azure-storage #remi-rs #tracing #events #export #blob-storage

remi-azure

๐Ÿปโ€โ„๏ธ๐Ÿงถ Support of Microsoft's Azure Blob Storage with remi-rs primitives

14 unstable releases (5 breaking)

0.10.2 Apr 30, 2025
0.10.1 Jan 13, 2025
0.10.0 Dec 4, 2024
0.9.1 Oct 21, 2024
0.6.3 Feb 19, 2024

#8 in #blob-storage

Download history 89/week @ 2025-02-26 114/week @ 2025-03-05 53/week @ 2025-03-12 39/week @ 2025-03-19 59/week @ 2025-03-26 40/week @ 2025-04-02 89/week @ 2025-04-09 48/week @ 2025-04-16 32/week @ 2025-04-23 273/week @ 2025-04-30 51/week @ 2025-05-07 66/week @ 2025-05-14 87/week @ 2025-05-21 331/week @ 2025-05-28 160/week @ 2025-06-04 150/week @ 2025-06-11

731 downloads per month
Used in 2 crates (via azalia-remi)

MIT license

60KB
607 lines

Official and maintained remi-rs crate for support of Microsoft's Azure Blob Storage

v0.10.1 | ๐Ÿ“œ Documentation
Crate Features Description Enabled by default?
export-azure Exports all the used Azure crates as a module called core No.
unstable Tap into unstable features from remi_azure and the remi crate. No.
tracing Enables the use of tracing::instrument and emit events for actions by the crate. No.
serde Enables the use of serde in StorageConfig No.
log Emits log records for actions by the crate No.

Example

// Cargo.toml:
//
// [dependencies]
// remi = "^0"
// remi-azure = "^0"
// tokio = { version = "^1", features = ["full"] }

use remi_azure::{StorageService, StorageConfig, Credential, CloudLocation};
use remi::{StorageService as _, UploadRequest};

#[tokio::main]
async fn main() {
    let storage = StorageService::new(StorageConfig {
        credentials: Credential::Anonymous,
        container: "my-container".into(),
        location: CloudLocation::Public("my-account".into()),
    }).unwrap();

    // Initialize the container. This will:
    //
    // * create `my-container` if it doesn't exist
    storage.init().await.unwrap();

    // Now we can upload files to Azure.

    // We define a `UploadRequest`, which will set the content type to `text/plain` and set the
    // contents of `weow.txt` to `weow fluff`.
    let upload = UploadRequest::default()
        .with_content_type(Some("text/plain"))
        .with_data("weow fluff");

    // Let's upload it!
    storage.upload("weow.txt", upload).await.unwrap();

    // Let's check if it exists! This `assert!` will panic if it failed
    // to upload.
    assert!(storage.exists("weow.txt").await.unwrap());
}

Dependencies

~18MB
~293K SLoC

OSZAR »