AzureSDK.Storage.Blob (Azure SDK v0.1.0)

Copy Markdown View Source

Azure Blob Storage operations.

Supports binary and iodata uploads and downloads. upload_stream/4 and download_stream/4 accept enumerables but buffer content in memory in v0.1.0; chunked streaming is planned for a future release.

Summary

Functions

Downloads a blob and returns its content.

Downloads a blob as an enumerable.

Sets blob metadata. Replaces all existing metadata keys.

Uploads a blob from binary or iodata content.

Types

blob()

@type blob() :: %{
  container: String.t(),
  name: String.t(),
  properties: map(),
  metadata: map(),
  content: binary() | nil
}

Functions

delete(client, container, name, opts \\ [])

@spec delete(AzureSDK.Storage.Client.t(), String.t(), String.t(), keyword()) ::
  {:ok, :deleted} | {:error, AzureSDK.Error.t()}

Deletes a blob.

download(client, container, name, opts \\ [])

@spec download(AzureSDK.Storage.Client.t(), String.t(), String.t(), keyword()) ::
  {:ok, blob()} | {:error, AzureSDK.Error.t()}

Downloads a blob and returns its content.

download_stream(client, container, name, opts \\ [])

@spec download_stream(AzureSDK.Storage.Client.t(), String.t(), String.t(), keyword()) ::
  {:ok, Enumerable.t()} | {:error, AzureSDK.Error.t()}

Downloads a blob as an enumerable.

In v0.1.0 the full blob is downloaded into memory first, then exposed as a single-chunk enumerable. Chunked streaming is planned for a future release.

metadata(client, container, name, opts \\ [])

@spec metadata(AzureSDK.Storage.Client.t(), String.t(), String.t(), keyword()) ::
  {:ok, map()} | {:error, AzureSDK.Error.t()}

Returns blob metadata.

set_metadata(client, container, name, metadata, opts \\ [])

@spec set_metadata(
  AzureSDK.Storage.Client.t(),
  String.t(),
  String.t(),
  map(),
  keyword()
) ::
  {:ok, map()} | {:error, AzureSDK.Error.t()}

Sets blob metadata. Replaces all existing metadata keys.

Returns the metadata that was set.

upload(client, container, name, content, opts \\ [])

@spec upload(AzureSDK.Storage.Client.t(), String.t(), String.t(), iodata(), keyword()) ::
  {:ok, blob()} | {:error, AzureSDK.Error.t()}

Uploads a blob from binary or iodata content.

upload_stream(client, container, name, stream, opts \\ [])

@spec upload_stream(
  AzureSDK.Storage.Client.t(),
  String.t(),
  String.t(),
  Enumerable.t(),
  keyword()
) ::
  {:ok, blob()} | {:error, AzureSDK.Error.t()}

Uploads a blob from an enumerable.

In v0.1.0 the enumerable is fully materialized in memory before upload.