sndacs

sndacs library provides access to SNDA Cloud Storage.

bases on the s3 gem: github.com/qoobaa/s3

Installation

gem install sndacs

Usage

Initialize the service

require "sndacs"

service = Sndacs::Service.new(:access_key_id => '...'
                              :secret_access_key => '...')
#=> #<Sndacs::Service:...>

or use even more flexible config style

require "sndacs"

# Setup global default configurations, see Sndacs::Config for more info
Config.access_key_id = '...'
Config.secret_access_key = '...'
Config.host = 'storage.grandcloud.cn'
Config.content_host = 'storage.sdcloud.cn'
Config.proxy = nil
Config.timeout = 60
Config.use_ssl = false
Config.chunk_size = 1048576
Config.debug = false
service = Sndacs::Service.new
#=> #<Sndacs::Service:...>

List buckets

service.buckets
#=> [#<Sndacs::Bucket:first-bucket>,
#    #<Sndacs::Bucket:second-bucket>]

Find bucket

first_bucket = service.buckets.find("first-bucket")
#=> #<Sndacs::Bucket:first-bucket>

List objects in a bucket

first_bucket.objects
#=> [#<Sndacs::Object:/first-bucket/lenna.png>,
#    #<Sndacs::Object:/first-bucket/lenna_mini.png>]

Find object in a bucket

object = first_bucket.objects.find("lenna.png")
#=> #<Sndacs::Object:/first-bucket/lenna.png>

Access object metadata (cached from find)

object.content_type
#=> "image/png"

Access object content (downloads the object)

object.content
#=> "\x89PNG\r\n\x1A\n\x00\x00\x00\rIHDR\x00..."

Delete an object

object.destroy
#=> true

Create an object

new_object = bucket.objects.build("bender.png")
#=> #<Sndacs::Object:/synergy-staging/bender.png>

new_object.content = open("bender.png")

new_object.save
#=> true

Please note that new objects are created with “private” ACL by default.

See also

Copyright © 2012 LI Daobing. See LICENSE for details.