Powered by AppSignal & Oban Pro

Blob Storage with AzureSDK

livebooks/blob_storage.livemd

Blob Storage with AzureSDK

Mix.install([
  {:azure_sdk, path: Path.expand("..", __DIR__)}
])

credential =
  AzureSDK.Identity.SharedKeyCredential.new(
    "devstoreaccount1",
    "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
  )

client =
  AzureSDK.Storage.Client.new(
    account: "devstoreaccount1",
    credential: credential,
    endpoint: "http://127.0.0.1:10000/devstoreaccount1"
  )

container = "blob-livebook"
{:ok, _} = AzureSDK.Storage.Container.create(client, container)

Upload, list, download, delete

{:ok, _} = AzureSDK.Storage.Blob.upload(client, container, "notes.txt", "AzureSDK blob demo")
{:ok, blobs} = AzureSDK.Storage.Container.list_blobs(client, container)
{:ok, %{content: content}} = AzureSDK.Storage.Blob.download(client, container, "notes.txt")
{:ok, :deleted} = AzureSDK.Storage.Blob.delete(client, container, "notes.txt")
{content, length(blobs)}