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