class RJack::JetS3t::S3Service

Initialization Wrapper around RestS3Service

Attributes

jservice[R]

The underlying org.jets3t.service.impl.rest.httpclient.RestS3Service

service[R]

The underlying org.jets3t.service.impl.rest.httpclient.RestS3Service

Public Class Methods

new( opts = {} ) click to toggle source

New REST S3 service instance given options hash.

Options (opts)

:credentials>

Required [access,secret] key

:http_client<HttpClient>

A pre-configured replacement org.apache.http.client.HttpClient (4.x) (Default: JetS3t provided)

String<~to_s>

Other options as defined in JetS3t Properties. HTTP client properties only apply to JetS3t’s default client (:http_client not set), and the timeout parameters are here defaulted to 5 seconds vs. the JetS3t 60 second originals.

Raises

:S3ServiceException

From JetS3t

:RuntimeError

On failure to provide required options

# File lib/rjack-jets3t/s3_service.rb, line 50
def initialize( opts = {} )
  opts = opts.dup

  creds = opts.delete( :credentials )
  unless creds && (2..3) === creds.length
    raise "Missing required :credentials [public,secret] keys"
  end
  creds = AWSCredentials.new( *creds )

  http = opts.delete( :http_client )
  unless http
    hdefs = { 'httpclient.connection-timeout-ms' => 5000,
              'httpclient.socket-timeout-ms'     => 5000 }
    opts = hdefs.merge( opts )
  end

  props = Jets3tProperties.new
  opts.each { |k,v| props.set_property( k.to_s, v.to_s ) }

  @jservice = RestS3Service.new( creds, nil, nil, props )

  @jservice.http_client = http if http
end

Public Instance Methods

[]( bucket_name, opts = {} ) click to toggle source

Return the S3Bucket with the specified name

# File lib/rjack-jets3t/s3_service.rb, line 75
def []( bucket_name, opts = {} )
  jbucket = @jservice.get_bucket( bucket_name )
  S3Bucket.new( self, jbucket, opts )
end
Also aliased as: bucket
bucket( bucket_name, opts = {} )
Alias for: []
buckets( opts = {} ) click to toggle source

Return Array of all buckets in this S3Service account instance.

# File lib/rjack-jets3t/s3_service.rb, line 83
def buckets( opts = {} )
  jbuckets = @jservice.list_all_buckets
  jbuckets.map { |jb| S3Bucket.new( self, jb, opts ) }
end
create_bucket( bucket_name, opts = {} ) { |jbucket| ... } click to toggle source

Create new bucket with the specified name

# File lib/rjack-jets3t/s3_service.rb, line 89
def create_bucket( bucket_name, opts = {} )
  jbucket = JS3Bucket.new( bucket_name )
  yield jbucket if block_given?
  jbucket = @jservice.create_bucket( jbucket )
  S3Bucket.new( self, jbucket, opts )
end
delete_bucket( bucket ) click to toggle source

Delete the specified S3Bucket instance

# File lib/rjack-jets3t/s3_service.rb, line 97
def delete_bucket( bucket )
  @jservice.delete_bucket( bucket.jbucket )
end