An S3 implementation of Moneta
Example usage:
require 'rubygems' require 'moneta' require 'moneta/s3' store = Moneta::S3.new( :access_key_id => 'ACCESS_KEY_ID', :secret_access_key => 'SECRET_ACCESS_KEY', :bucket => 'a_bucket' ) store['somefile']
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
# File lib/moneta/s3.rb, line 32 def initialize(options = {}) validate_options(options) s3 = RightAws::S3.new( options[:access_key_id], options[:secret_access_key], { :logger => logger, :multi_thread => options.delete(:multi_thread) || false } ) @bucket = s3.bucket(options.delete(:bucket), true) end
# File lib/moneta/s3.rb, line 55 def []=(key, value) store(key, value) end
# File lib/moneta/s3.rb, line 59 def delete(key) k = s3_key(key) if k value = k.get k.delete value end end
# File lib/moneta/s3.rb, line 45 def key?(key) !s3_key(key).nil? end
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
# File lib/moneta/s3.rb, line 75 def store(key, value, options = {}) debug "store(key=#{key}, value=#{value}, options=#{options.inspect})" meta_headers = meta_headers_from_options(options) perms = options[:perms] headers = options[:headers] || {} case value when IO @bucket.put(key, value.read, meta_headers, perms, headers) else @bucket.put(key, value, meta_headers, perms, headers) end end
Generated with the Darkfish Rdoc Generator 2.