def objects_detail(params = {})
params[:marker] ||= params[:offset]
paramarr = []
paramarr << ["format=xml"]
paramarr << ["limit=#{URI.encode(params[:limit].to_s).gsub(/&/,'%26')}"] if params[:limit]
paramarr << ["marker=#{URI.encode(params[:marker].to_s).gsub(/&/,'%26')}"] if params[:marker]
paramarr << ["prefix=#{URI.encode(params[:prefix]).gsub(/&/,'%26')}"] if params[:prefix]
paramarr << ["path=#{URI.encode(params[:path]).gsub(/&/,'%26')}"] if params[:path]
paramstr = (paramarr.size > 0)? paramarr.join("&") : "" ;
response = self.connection.cfreq("GET",@storagehost,"#{@storagepath}?#{paramstr}",@storageport,@storagescheme)
return {} if (response.code == "204")
raise InvalidResponseException, "Invalid response code #{response.code}" unless (response.code == "200")
doc = REXML::Document.new(response.body)
detailhash = {}
doc.elements.each("container/object") { |o|
detailhash[o.elements["name"].text] = { :bytes => o.elements["bytes"].text, :hash => o.elements["hash"].text, :content_type => o.elements["content_type"].text, :last_modified => DateTime.parse(o.elements["last_modified"].text) }
}
doc = nil
return detailhash
end