require 'cloudfiles' class RackCloudBackupDriver < CloudBackup::Driver def initialize credentials @id = credentials[:id] @key = credentials[:key] @identificator = credentials[:bucket] @cf = CloudFiles::Connection.new(@id, @key) end def initiate @bucket = get_or_create_bucket end # TODO: parse metadata def list_by_date @bucket.objects end def remove name @bucket.delete_object name end # TODO: set metadata to objects def upload list.each do |file| object = @bucket.create_object File.basename(file) object.write File.read(file) end end def terminate @cf, @bucket = nil end private def get_or_create_bucket unless @cf.containers.include? @identificator @cf.create_container @identificator end @cf.container @identificator end end