Ruby瘦客户端监听HTTP:Put,不知道从哪里开始和我需要什么

时间:2013-02-08 22:41:35

标签: ruby http thin put http-put

我有一个python脚本,通过HTTP :: PUT发送文件作为数据变量的附件(也可以是POST)

使用POST我可以通过PHP(在Apache上)使用一行代码(echo file_get_contents($_FILES['file']['tmp_name']);)获取它

但是在没有Apache和PHP(我不可用)的情况下尝试对ruby做同样的事情让我看看在THIN上运行的Ruby脚本。我已经设法创建一个瘦脚本来侦听端口并以200 OK响应,但无法找到任何示例或清楚地读取API以了解如何捕获PUT或POST数据。任何代码片段或指针都很有意思。

到目前为止我所拥有的:

require 'rack' 
process_requests = lambda { |env|
  response = []
  response << 200
  response << {"Content-Type" => "text/plain"}  
  body = ["Now What?"]  
  response << body
  return response
}

thin = Rack::Handler::Thin
thin.run process_requests

输出:

>> Thin web server (v1.5.0 codename Knife)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:8080, CTRL+C to stop

我如何测试它:

curl --upload-file /tmp/testfile http://localhost:8080

输出:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    31    0     9  100    22      8     21  0:00:01  0:00:01 --:--:--    21
Now What?

该文件显然已被转移,但不知道如何抓取它。

一旦我弄清楚如何检查和接收文件,我就可以处理响应头等。

感谢您的帮助,

0 个答案:

没有答案