Skip to content

Microsoft Azure Blob Storage file output plugin for Embulk


Notifications You must be signed in to change notification settings


Repository files navigation

Azure Blob Storage file output plugin for Embulk

Build Status

Embulk file output plugin stores files on Microsoft Azure Blob Storage


  • Plugin type: file output
  • Resume supported: no
  • Cleanup supported: yes


First, create Azure Storage Account.

  • account_name: storage account name (string, required)
  • account_key: primary access key (string, required)
  • container: container name (string, required)
  • path_prefix: prefix of target keys (string, required) (string, required)
  • file_ext: e.g. "csv.gz, json.gz" (string, required)
  • blob_type: BLOCK_BLOB | PAGE_BLOB | APPEND_BLOB | UNSPECIFIED, currently supports BLOCK_BLOB, other types will fall back into UNSPECIFIED (string, default UNSPECIFIED)

Auto create container

container will create automatically when container doesn't exists.

When a container was deleted, a container with same name cannot be created for at least 30 seconds. It's a service specification of Azure Blob Storage.


  type: azure_blob_storage
  account_name: myaccount
  account_key: myaccount_key
  container: my-container
  path_prefix: logs/csv-
  file_ext: csv.gz
  blob_type: BLOCK_BLOB
    type: csv
    header_line: false
  - {type: gzip}


$ ./gradlew gem  # -t to watch change of files and rebuild continuously


$ ./gradlew test  # -t to watch change of files and rebuild continuously

To run unit tests, we need to configure the following environment variables.

When environment variables are not set, skip some test cases.

AZURE_CONTAINER_DIRECTORY (optional, if needed)

If you're using Mac OS X El Capitan and GUI Applications(IDE), like as follows.

$ vi ~/Library/LaunchAgents/environment.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "">
<plist version="1.0">
      launchctl setenv AZURE_ACCOUNT_NAME my-account-name
      launchctl setenv AZURE_ACCOUNT_KEY my-account-key
      launchctl setenv AZURE_CONTAINER my-container
      launchctl setenv AZURE_CONTAINER_DIRECTORY unittests

$ launchctl load ~/Library/LaunchAgents/environment.plist
$ launchctl getenv AZURE_ACCOUNT_NAME //try to get value.

Then start your applications.