Class: Moneta::S3
- Inherits:
-
Object
- Object
- Moneta::S3
- Defined in:
- lib/moneta/s3.rb
Overview
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
- #clear ⇒ Object
- #delete(key) ⇒ Object
-
#initialize(options = {}) ⇒ S3
constructor
Initialize the Moneta::S3 store.
- #key?(key) ⇒ Boolean (also: #has_key?)
-
#store(key, value, options = {}) ⇒ Object
Store the key/value pair.
- #update_key(key, options = {}) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ S3
Initialize the Moneta::S3 store.
Required values passed in the options hash:
-
:access_key_id
: The access id key -
:secret_access_key
: The secret key -
:bucket
: The name of bucket. Will be created if it doesn’t
exist.
-
:multi_thread
: Set to true if using threading
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/moneta/s3.rb', line 32 def initialize( = {}) () s3 = RightAws::S3.new( [:access_key_id], [:secret_access_key], { :logger => logger, :multi_thread => .delete(:multi_thread) || false } ) @bucket = s3.bucket(.delete(:bucket), true) end |
Instance Method Details
#[](key) ⇒ Object
51 52 53 |
# File 'lib/moneta/s3.rb', line 51 def [](key) get(key) end |
#[]=(key, value) ⇒ Object
55 56 57 |
# File 'lib/moneta/s3.rb', line 55 def []=(key, value) store(key, value) end |
#clear ⇒ Object
95 96 97 |
# File 'lib/moneta/s3.rb', line 95 def clear @bucket.clear end |
#delete(key) ⇒ Object
59 60 61 62 63 64 65 66 |
# File 'lib/moneta/s3.rb', line 59 def delete(key) k = s3_key(key) if k value = k.get k.delete value end end |
#key?(key) ⇒ Boolean Also known as: has_key?
45 46 47 |
# File 'lib/moneta/s3.rb', line 45 def key?(key) !s3_key(key).nil? end |
#store(key, value, options = {}) ⇒ Object
Store the key/value pair.
Options: *:meta_headers
: Meta headers passed to S3 *:perms
: Permissions passed to S3 *:headers
: Headers sent as part of the PUT request *:expires_in
: Number of seconds until expiration
75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/moneta/s3.rb', line 75 def store(key, value, = {}) debug "store(key=#{key}, value=#{value}, options=#{.inspect})" = () perms = [:perms] headers = [:headers] || {} case value when IO @bucket.put(key, value.read, , perms, headers) else @bucket.put(key, value, , perms, headers) end end |
#update_key(key, options = {}) ⇒ Object
89 90 91 92 93 |
# File 'lib/moneta/s3.rb', line 89 def update_key(key, = {}) debug "update_key(key=#{key}, options=#{.inspect})" k = s3_key(key, false) k.(()) unless k.nil? end |