Skip to content

Commit

Permalink
Merge pull request #11 from thalesmg/sync-upstream-20240610
Browse files Browse the repository at this point in the history
sync `master` with upstream
  • Loading branch information
thalesmg authored Jun 10, 2024
2 parents a4a909b + b8b61dc commit 7d5b7ac
Show file tree
Hide file tree
Showing 6 changed files with 354 additions and 576 deletions.
25 changes: 8 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ Erlazure requires OTP version R16+.

## Starting an instance of erlazure

Start an instance of erlazure by calling ```erlazure:start/2``` where **Account** is Storage account name and **Key** is Storage account key.
Start an instance of erlazure by calling `erlazure:new/2` where **Account** is Storage account name and **Key** is Storage account key.
```erlang
{ok, Pid} = erlazure:start(Account, Key)
{ok, State} = erlazure:new(Account, Key)
```
Account and Key are strings.

Expand All @@ -60,39 +60,30 @@ Account and Key are strings.
Account = "devstoreaccount1".
Key = "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==".
%% Mind the trailing slash at the end of the endpoint.
{ok, Pid} = erlazure:start(#{account => Account, key => Key, endpoint => "http://127.0.0.1:10000/"})
{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``` and the third has additionaly ```Timeout``` parameter.
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.

```Timeout``` is number of milliseconds to wait for a reply from erlazure, infinity value is not supported. Note, that this is gen_server call timeout and isn't http request timeout (it's set to infinity by default) or azure service request timeout (you can specify it by sending option ```{timeout, _Timeout}```). By default timeout is set to 30 seconds.

For a list of supported options for each azure service request please consult msdn documentation.

## Examples

### Upload block blob
```
{ok, Pid} = erlazure:start("storage", "2o4b4tHpoWifLU+BlyzsIG1VtlO9LgBRFyl1qLw/+w9/ZszSxKGIK8JYac/UEJp5r8HKgiOiG8YTqGS9otAYWA=="),
{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(Pid, "uploads", "test_upload.file", Binary).
```
### Upload block blob with timeout set
Uploads block blob and waits no longer than 15 seconds for erlazure to finish the upload
```
{ok, Pid} = erlazure:start("storage", "2o4b4tHpoWifLU+BlyzsIG1VtlO9LgBRFyl1qLw/+w9/ZszSxKGIK8JYac/UEJp5r8HKgiOiG8YTqGS9otAYWA=="),
{ok, Binary} = file:read("/path/to/some/other/file"),
{ok, created} = erlazure:put_block_blob(Pid, "uploads", "test_upload2.file", Binary, [], 15000).
{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, Pid} = erlazure:start("storage", "2o4b4tHpoWifLU+BlyzsIG1VtlO9LgBRFyl1qLw/+w9/ZszSxKGIK8JYac/UEJp5r8HKgiOiG8YTqGS9otAYWA=="),
{ok, Messages} = erlazure:get_messages(Pid, "test_queue", [{num_of_messages, 20}]).
{ok, State} = erlazure:new("storage", "2o4b4tHpoWifLU+BlyzsIG1VtlO9LgBRFyl1qLw/+w9/ZszSxKGIK8JYac/UEJp5r8HKgiOiG8YTqGS9otAYWA=="),
{ok, Messages} = erlazure:get_messages(State, "test_queue", [{num_of_messages, 20}]).
```

## License
Expand Down
2 changes: 1 addition & 1 deletion src/erlazure.app.src
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{application, erlazure,
[{description, "Windows Azure Erlang bindings"},
{vsn, "0.3.0.2"},
{vsn, "0.4.0.0"},
{modules, []},
{registered, []},
{applications, [kernel, stdlib, crypto, inets, ssl]},
Expand Down
Loading

0 comments on commit 7d5b7ac

Please sign in to comment.