copy_object(source_container, source_object, target_container, target_object, options={})
click to toggle source
def copy_object(source_container, source_object, target_container, target_object, options={})
response = Excon::Response.new
if @containers[source_container].nil? || @containers[source_container][source_object].nil? || @containers[target_container].nil?
response.body = '<html><h1>Not Found</h1><p>The resource could not be found.</p></html>'
response.status = 404
else
@containers[target_container][target_object] = @containers[source_container][source_object]
response.body = ''
response.status = 201
end
response
end
delete_container(name)
click to toggle source
def delete_container(name)
response = Excon::Response.new
if @containers[name].nil?
response.body = '<html><h1>Not Found</h1><p>The resource could not be found.</p></html>'
response.status = 404
elsif @containers[name].length > 0
response.body = '<html><h1>Conflict</h1><p>There was a conflict when trying to complete your request.</p></html>'
response.status = 409
else
response.body = ''
response.status = 204
end
response
end
delete_object(container, object)
click to toggle source
def delete_object(container, object)
response = Excon::Response.new
if @containers[container].nil? || @containers[container][object].nil?
response.body = '<html><h1>Not Found</h1><p>The resource could not be found.</p></html>'
response.status = 404
else
response.body = ''
response.status = 204
end
response
end
get_container(container, options = {})
click to toggle source
def get_container(container, options = {})
if @containers[container]
response = Excon::Response.new
response.body = @containers[container].map do |name, object|
{
'hash' => object.respond_to?(:to_s) ? Digest::MD5.hexdigest(object.to_s) : 'e4d909c290d0fb1ca068ffaddf22cbd0',
'last_modified' => Time.now,
'bytes' => Memory.analyze(container).bytes,
'content/type' => 'application/json'
}
end
response.status = 200
response
else
response = Excon::Response.new
response.body = '<html><h1>Not Found</h1><p>The resource could not be found.</p></html>'
response.status = 404
response.headers = {"Content-Length"=>"70", "Content-Type"=>"text/html; charset=UTF-8", "X-Trans-Id"=>"abcdefghijklmnopqrstuvwx-0123456789", "Date"=>Time.now}
response
end
end
get_containers(options = {})
click to toggle source
def get_containers(options = {})
response = Excon::Response.new
response.body = _format_containers(@containers)
response.status = 200
response
end
get_object(container, object, &block)
click to toggle source
def get_object(container, object, &block)
if @containers[container] && @containers[container][object]
response = Excon::Response.new
response.body = @containers[container][object]
response.status = 200
response
else
response = Excon::Response.new
response.body = '<html><h1>Not Found</h1><p>The resource could not be found.</p></html>'
response.status = 404
response.headers = {"Content-Length"=>"70", "Content-Type"=>"text/html; charset=UTF-8", "X-Trans-Id"=>"abcdefghijklmnopqrstuvwx-0123456789", "Date"=>Time.now}
response
end
end
get_object_https_url(container, object, expires, options = {})
click to toggle source
def get_object_https_url(container, object, expires, options = {})
"https://cluster.objectstorage.softlayer.net:443/v1/AUTH_abcdefghijklmnopqrstuvwxyz/#{container}/#{object}?temp_url_sig=1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a&temp_url_expires=1111111111111"
end
put_container(name)
click to toggle source
def put_container(name)
@containers[name] = {} unless @containers[name]
response = Excon::Response.new
response.body = ''
response.status = 201
response
end
put_object(container, object, data, options = {}, &block)
click to toggle source
def put_object(container, object, data, options = {}, &block)
if @containers[container]
@containers[container][object] = data
response = Excon::Response.new
response.body = ''
response.status = 201
response.headers = {"Last-Modified"=>Time.now, "Content-Length"=>0}
response
else
response = Excon::Response.new
response.body = '<html><h1>Not Found</h1><p>The resource could not be found.</p></html>'
response.status = 404
response.headers = {"Content-Length"=>"70", "Content-Type"=>"text/html; charset=UTF-8", "X-Trans-Id"=>"abcdefghijklmnopqrstuvwx-0123456789", "Date"=>Time.now}
response
end
end