Sha256: 230b0925434b4ef29a2d573b1262d705e9fd4b40f53f1d4c12ff3744fc03ba18
Contents?: true
Size: 1.44 KB
Versions: 6
Compression:
Stored size: 1.44 KB
Contents
require 'attached/storage/base' require 'fog' module Attached module Storage class Rackspace < Fog attr_reader :container attr_reader :username attr_reader :api_key # Create a new interface supporting save and destroy operations. # # Usage: # # Attached::Storage::Rackspace.new() # Attached::Storage::Rackspace.new("rackspace.yml") def initialize(credentials) super credentials = parse(credentials) @container = credentials[:container] || credentials['container'] @username = credentials[:username] || credentials['username'] @api_key = credentials[:api_key] || credentials['api_key'] raise "'container' must be specified if using 'rackspace' for storage" unless @container end # Access the host (e.g. https://storage.clouddrive.com/container) for a storage service. # # Usage: # # storage.host def host() "https://storage.clouddrive.com/#{self.container}/" end private def directory() connection.directories.get(self.container) || connection.directories.create(self.defaults.merge(:key => self.container)) end def connection @connection ||= ::Fog::Storage.new( :rackspace_username => self.username, :rackspace_api_key => self.api_key, :provider => 'Rackspace' ) end end end end
Version data entries
6 entries across 6 versions & 1 rubygems