Sha256: 63833beb76a928aed843414ba82009f841e6601165506f4e8b2128ec1757d8fb
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
require "swift_client" require "connection_pool" module Attachie class SwiftDriver attr_accessor :swift_client_pool def initialize(swift_client_pool) self.swift_client_pool = swift_client_pool end def list(container, prefix: nil) return enum_for(:list, container, prefix: prefix) unless block_given? swift_client_pool.with do |swift_client| swift_client.paginate_objects(container, prefix: prefix) do |response| response.parsed_response.each do |source_object| yield source_object["name"] end end end end def store(name, data_or_io, container, headers = {}) swift_client_pool.with do |swift_client| swift_client.put_object name, data_or_io, container, headers end end def value(name, container) swift_client_pool.with do |swift_client| swift_client.get_object(name, container).body end end def delete(name, container) swift_client_pool.with do |swift_client| swift_client.delete_object name, container end rescue SwiftClient::ResponseError => e return true if e.code == 404 raise e end def exists?(name, container) swift_client_pool.with do |swift_client| swift_client.head_object name, container end true rescue SwiftClient::ResponseError => e return false if e.code == 404 raise e end def temp_url(name, container, options = {}) swift_client_pool.with do |swift_client| swift_client.temp_url name, container, options end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
attachie-0.0.1 | lib/attachie/swift_driver.rb |