Cleversafe SOH

Description

This is a Ruby interface into the Cleversafe's SOH API.

Notes

  • Multipart uploads are not supported by Cleversafe's API. Coming soon.
  • If you upload a file with "X-Digest" you will get back a hash that includes :id and :x_content_digest.

Todo

  • Support range requests for getting an object

Examples

#Setup Conection
request = Cleversafe::Connection.new("USERNAME", "PASSWORD", "HOSTNAME")

#Does a vault exist?
request.vault_exists?("VAULTNAME")

# load vault
vault = request.vault("VAULTNAME")

# bytes used in vault
vault.bytes_used

# list objects in vault
vault.objects(:limit => 10, :start_id => "1f1665dce23b515cedf29edaf1d033730000")

# load object
object = "1f1665dce23b515cedf29edaf1d033730000"

# get etag of object
vault.object(object).etag

# download object
File.open("downloaded.file", 'w') {|f| f.write(vault.object(object).data) }

# upload object, don't use multipart, it is not supported
uploaded_object = vault.create_object File.new("upload.file", "r"), :multipart => false, 'X-Digest' => "md5" 

# uploaded object's digest
uploaded_object[:id]

# object's digest
uploaded_object[:x_content_digest]

# uploaded object exists?
vault.object_exists?(uploaded_object[:id])

# deleting the uploaded object
vault.delete_object(uploaded_object[:id])