class Stacktor::Swift::V1::ContainerObject
Public Instance Methods
container_name()
click to toggle source
# File lib/stacktor/swift/v1/container_object.rb, line 13 def container_name data['container_name'] end
content_length()
click to toggle source
# File lib/stacktor/swift/v1/container_object.rb, line 21 def content_length bytes = data['bytes'] || headers['Content-Length'] bytes ? bytes.to_i : nil end
content_type()
click to toggle source
# File lib/stacktor/swift/v1/container_object.rb, line 26 def content_type type = data['content_type'] || headers['Content-Type'] return nil if type.nil? return type.split(";").first end
delete()
click to toggle source
# File lib/stacktor/swift/v1/container_object.rb, line 89 def delete result = @client.delete_object(container_name: self.container_name, object_name: self.name) if result[:success] return result else raise result[:body] end end
etag()
click to toggle source
# File lib/stacktor/swift/v1/container_object.rb, line 17 def etag data['hash'] || headers['ETag'] end
last_modified()
click to toggle source
# File lib/stacktor/swift/v1/container_object.rb, line 32 def last_modified t = data['last_modified'] || headers['Last-Modified'] return nil if t.nil? return Time.parse(t) end
metadata()
click to toggle source
# File lib/stacktor/swift/v1/container_object.rb, line 38 def metadata ret = {} headers.each do |k,v| h = k.downcase.strip if h.start_with?("x-object-meta-") mk = h.split('-').last ret[mk] = v end end return ret end
name()
click to toggle source
# File lib/stacktor/swift/v1/container_object.rb, line 9 def name data['name'] end
read()
click to toggle source
TRANSACTIONS
# File lib/stacktor/swift/v1/container_object.rb, line 52 def read result = @client.get_object_content(container_name: self.container_name, object_name: self.name) if result[:success] return result[:body] else raise result[:body] end end
reload()
click to toggle source
# File lib/stacktor/swift/v1/container_object.rb, line 80 def reload result = @client.get_object_metadata(container_name: self.container_name, object_name: self.name) if result[:success] self.handle_data(result[:body], headers: result[:response]) else raise result[:body] end end
stream(&block)
click to toggle source
# File lib/stacktor/swift/v1/container_object.rb, line 61 def stream(&block) result = @client.get_object_content(container_name: self.container_name, object_name: self.name) do |bytes| block.call(bytes) end if result[:success] return result[:body] else raise result[:body] end end
write_to_file(path)
click to toggle source
# File lib/stacktor/swift/v1/container_object.rb, line 72 def write_to_file(path) File.open(path, 'wb') do |fw| self.stream do |bytes| fw.write bytes end end end