Lightweight cloud storage library and client
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ccan
client
doc
lib
test
third_party
.gitignore
COPYING
Makefile
configure
readme.asciidoc
waf
wscript

readme.asciidoc

Elasto

Summary

Elasto is a lightweight library and client utility for managing and manipulating cloud storage objects via REST protocols. Microsoft Azure and Amazon S3 cloud storage protocols are supported.

Installation

Prebuilt packages for GNU/Linux distributions are available for download from the Elasto project website: http://elastocloud.org/. Alternatively, Elasto can be built from source using the Waf build framework.

libevent, libexpat and openssl (libcrypto) development libraries are required for building.

To compile the library and client, run the following from the top of the source tree:

> ./waf configure
> ./waf build

After building, Elasto can be installed by running:

> ./waf install

Running (short version)

Azure

  1. Create an Azure account

  2. Download the PublishSettings file for the account:
    https://manage.windowsazure.com/publishsettings/index

  3. Start the Elasto client, connecting to the Azure Blob Service:

> elasto -s Azure_PublishSettings_File

Amazon S3

  1. Create Amazon S3 account

  2. Create an IAM group with S3 access, assign a new user to the group:
    https://console.aws.amazon.com/iam/home#home

  3. Download the user’s access key (credentials.csv) file

  4. Start the Elasto client:

> elasto -k iam_creds_file

Running (not so short version)

Azure

First step is to create an Azure account at https://azure.microsoft.com.

Authentication

The Elasto client can authenticate with Azure using one of two credentials parameters:

Access Key

An Access Key is associated with a specific storage account, and only allows access to Blob and File Service objects nested within the corresponding account. E.g.

> elasto -K access_key
PublishSettings

A PublishSettings file can be used to create and manipulate storage accounts, as well as underlying Blob and File Service objects. It can be downloaded at https://manage.windowsazure.com/publishsettings/index.
The file contains security sensitive information, so should be kept private.

> elasto -s PublishSettings_path

Service URI

Azure Blob Service (Block Blobs - default)
> elasto -u abb:// ...
Azure Blob Service (Page Blobs)
> elasto -u apb:// ...
Azure File Service
> elasto -u afs:// ...

Amazon S3

Create an Amazon S3 account at https://aws.amazon.com/s3/.

Authentication

Create an IAM group with S3 access, assign a new user to the group:
https://console.aws.amazon.com/iam/home#home → Create a New Group of Users

The IAM user creation wizard allows for the download of access credentials. Select "Generate an access key for each User", and subsequently "Download Credentials".

Commands can then be issued by running the elasto client binary with the -k argument. E.g.

> elasto -k iam_creds_file <command>

Alternatives

libs3

A C Library API for Amazon S3. https://github.com/bji/libs3

fog

Ruby cloud services library. http://fog.io/

rest-client-c

Object-oriented REST client in C. https://github.com/emcvipr/rest-client-c

atmos-c

C library for EMC Atmos cloud storage. https://github.com/emcvipr/atmos-client-c

Droplet

Cloud storage client library https://github.com/scality/Droplet