Initialization Wrapper around RestS3Service
The underlying org.jets3t.service.impl.rest.httpclient.RestS3Service
The underlying org.jets3t.service.impl.rest.httpclient.RestS3Service
New REST S3 service instance given options hash.
Required [access,secret] key
A pre-configured replacement org.apache.http.client.HttpClient (4.x) (Default: JetS3t provided)
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.
From JetS3t
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
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
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 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 the specified S3Bucket instance
# File lib/rjack-jets3t/s3_service.rb, line 97 def delete_bucket( bucket ) @jservice.delete_bucket( bucket.jbucket ) end