Awesome
erlazure (v0.2)
Erlazure is a library for accessing Windows Azure Storage Services. The API is subject to change.
Service APIs implemented:
- Queue storage service (API ver. "2014-02-14")
- Blob storage service (API ver. "2014-02-14")
- Table storage service (API ver. "2014-02-14")
Requirements
Erlazure requires OTP version R16+.
Implemented API functions
-
Queue storage service
- List queues
- Get queue acl
- Create queue
- Delete queue
- Put message
- Get messages
- Peek messages
- Delete message
- Clear messages
- Update message
-
Blob storage service
- List containers
- Create container
- Delete container
- Put block blob
- Put page blob
- List blobs
- Get blob
- Snapshot blob
- Copy blob
- Delete blob
- Put block
- Put block list
- Get block list
- Lease container
-
Table storage service
- List tables
- New table
- Delete table
Starting an instance of erlazure
Start an instance of erlazure by calling erlazure:new/2
where Account is Storage account name and Key is Storage account key.
{ok, State} = erlazure:new(Account, Key)
Account and Key are strings.
Using an emulated service like Azurite
%% default dev credentials from Azurite
Account = "devstoreaccount1".
Key = "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==".
%% Mind the trailing slash at the end of the endpoint.
{ok, State} = erlazure:new(#{account => Account, key => Key, endpoint => "http://127.0.0.1:10000/"})
Calling Azure services
Almost each azure services request has three corresponding functions in erlazure
module, the first has minimal set of parameters, the second has additionaly list of Options
.
Options
as the name states is list of options supported by this azure services request, each options is tuple {OptionName, OptionValue}
where OptionName
is atom and OptionValue
can be of any type, option is passed either as a header or as a query string parameter.
For a list of supported options for each azure service request please consult msdn documentation.
Examples
Upload block blob
{ok, State} = erlazure:new("storage", "2o4b4tHpoWifLU+BlyzsIG1VtlO9LgBRFyl1qLw/+w9/ZszSxKGIK8JYac/UEJp5r8HKgiOiG8YTqGS9otAYWA=="),
{ok, Binary} = file:read("/path/to/some/small/file"),
{ok, created} = erlazure:put_block_blob(State, "uploads", "test_upload.file", Binary).
Get 20 messages from a queue
Retrieves max 20 messages from a queue
{ok, State} = erlazure:new("storage", "2o4b4tHpoWifLU+BlyzsIG1VtlO9LgBRFyl1qLw/+w9/ZszSxKGIK8JYac/UEJp5r8HKgiOiG8YTqGS9otAYWA=="),
{ok, Messages} = erlazure:get_messages(State, "test_queue", [{num_of_messages, 20}]).
License
Copyright © 2013–2015 Dmitriy Kataskin
Licensed under BSD License (see LICENSE).