Skip to content

An HTTP Proxy implemented as a RESTful service that can access storage space in the cloud.

Notifications You must be signed in to change notification settings

Lopson/LinkCloud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Link Cloud

A very simple RESTful service that allows an application to access Microsoft's Azure Blob Storage service

This application was created out of the frustrating experience I had while using Apache's own Deltacloud. Said application refused to work on many different kinds of setups (different Ruby versions, different Gems versions, you name it). Seeing as its development has seemingly stopped, I decided to make an alternative for my own needs.

This small Java service was developed with JAX-RS, and is tested on Glassfish 4. It does everything I want it to do, plus it can be easily extended to use more CSPs.

Here's what it's be able to do for now:

  • Download a blob (GET at /api/{provider}/{container}/{blob});
  • Upload a blob (POST at /api/{provider}/{container}/{blob});
  • Checks if a blob exists and returns its size in bytes (HEAD at /api/{provider}/{container}/{blob});
  • Delete a blob (DELETE at /api/{provider}/{container}/{blob});
  • Lists all blobs in a container (GET at /api/{provider}/{container}, returns an XML file);
  • Create a container (POST at /api/{provider}/{container});
  • Test if a container exists (HEAD at /api/{provider}/{container});
  • Delete a container (DELETE at /api/{provider}/{container}).

All login credentials must be sent to the service through Basic Authentication HTTP headers (accountName:accountKey). The XML file returned by the listing method should have the following structure:

<blobs count="2">
    <blob name="file.txt" size="10" />
    <blob name="file2.png" size="1005498" />
</blobs>

Please note that the size of a file is given in bytes.

Supported CSPs/Extending CSP Support

The program is currently capable of interacting with Microsoft's Azure Blob Storage service, treating everything as block blobs. This interaction is described in the AzureStorageObject Java file, which in turn implements the interface described in the file StorageObject. If you want to implement some other CSP, all you have to do is implement this given interface, add the StorageObject you've created into the providersSet hash map located in the RequestResource file and you're good to go!

About

An HTTP Proxy implemented as a RESTful service that can access storage space in the cloud.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages