1234567891011121314151617181920212223242526272829303132333435 |
- require "webrick"
- #
- # Dummy asset server
- #
- class AssetServlet < WEBrick::HTTPServlet::AbstractServlet
- def do_GET(req, res)
- uuid = req.path.split("/")[2].downcase.gsub(/[^0-9a-f]+/, "")
- if uuid.length == 32
- # length is correct
- File.open("assets/#{uuid}/data") do |f|
- res.body = f.read
- end
- end
- # res["content-type"] = "text/plain" # or what do we set it to ?
- end
- def do_POST(req, res)
- uuid = req.path.split("/")[2].downcase.gsub(/[^0-9a-f]+/, "")
- if uuid.length == 32
- Dir.mkdir("assets/#{uuid}")
- File.open("assets/#{uuid}/data", "wb") do |f|
- f.write req.body
- STDERR.print "Written #{req.body.length} bytes for uuid #{uuid}\n\n"
- end
- end
- end
- end
- svr = WEBrick::HTTPServer.new(:Port=>8003)
- svr.mount("/assets", AssetServlet, 5000000)
- trap(:INT){ svr.shutdown }
- svr.start
|