Class: AWS::S3::Service

Inherits:
Base
  • Object
show all
Defined in:
lib/aws-matt/s3/service.rb,
lib/aws-matt/s3/response.rb

Overview

The service lets you find out general information about your account, like what buckets you have.

Service.buckets
# => []

Defined Under Namespace

Classes: Response

Constant Summary collapse

@@response =

:nodoc:

nil

Class Method Summary collapse

Methods inherited from Base

current_bucket, #initialize, request, set_current_bucket_to

Constructor Details

This class inherits a constructor from AWS::S3::Base

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class AWS::S3::Base

Class Method Details

.bucketsObject

List all your buckets.

Service.buckets
# => []

For performance reasons, the bucket list will be cached. If you want avoid all caching, pass the :reload as an argument:

Service.buckets(:reload)


20
21
22
23
24
25
26
27
# File 'lib/aws-matt/s3/service.rb', line 20

def buckets
  response = get('/')
  if response.empty?
    []
  else
    response.buckets.map {|attributes| Bucket.new(attributes)}
  end
end

.responseObject

Sometimes methods that make requests to the S3 servers return some object, like a Bucket or an S3Object. Othertimes they return just true. Other times they raise an exception that you may want to rescue. Despite all these possible outcomes, every method that makes a request stores its response object for you in Service.response. You can always get to the last request’s response via Service.response.

objects = Bucket.objects('jukebox')
Service.response.success?
# => true

This is also useful when an error exception is raised in the console which you weren’t expecting. You can root around in the response to get more details of what might have gone wrong.



41
42
43
# File 'lib/aws-matt/s3/service.rb', line 41

def response
  @@response
end

.response=(response) ⇒ Object

:nodoc:



45
46
47
# File 'lib/aws-matt/s3/service.rb', line 45

def response=(response) #:nodoc:
  @@response = response
end