In Files

Parent

Moneta::S3

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']

Public Class Methods

new(options = {}) click to toggle source

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

Public Instance Methods

[](key) click to toggle source
# File lib/moneta/s3.rb, line 51
def [](key)
  get(key)
end
[]=(key, value) click to toggle source
# File lib/moneta/s3.rb, line 55
def []=(key, value)
  store(key, value)
end
clear() click to toggle source
# File lib/moneta/s3.rb, line 95
def clear
  @bucket.clear
end
delete(key) click to toggle source
# File lib/moneta/s3.rb, line 59
def delete(key)
  k = s3_key(key)
  if k
    value = k.get
    k.delete
    value
  end
end
has_key?(key) click to toggle source
Alias for: key?
key?(key) click to toggle source
# File lib/moneta/s3.rb, line 45
def key?(key)
  !s3_key(key).nil?
end
Also aliased as: has_key?
store(key, value, options = {}) click to toggle source

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
update_key(key, options = {}) click to toggle source
# File lib/moneta/s3.rb, line 89
def update_key(key, options = {})
  debug "update_key(key=#{key}, options=#{options.inspect})"
  k = s3_key(key, false)
  k.save_meta(meta_headers_from_options(options)) unless k.nil?
end

Protected Instance Methods

logger() click to toggle source
# File lib/moneta/s3.rb, line 100
def logger
  @logger ||= begin
    logger = Logger.new(STDOUT)
    logger.level = Logger::FATAL
    logger
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.