How to read a GZIP payload in Ruby Sinatra
问题 On a remote host I have a bash script sending a simple gzipped YAML file to my Ruby Sinatra endpoint: #!/bin/bash /bin/gzip -c /tmp/test.yaml > /tmp/test.gz curl -i <hostname>:<port>/last_run_report -H "Content-Type: application/xml" -H "Content-Encoding: gzip" --data-binary @/tmp/test.gz My sample Ruby app is: require 'sinatra' require 'zlib' require 'stringio' set :port, <port> set :bind, "<ip>" post '/last_run_report' do sio = StringIO.new(request.body.to_s) gz = Zlib::GzipReader.new(sio)