我有一个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?
该文件显然已被转移,但不知道如何抓取它。
一旦我弄清楚如何检查和接收文件,我就可以处理响应头等。
感谢您的帮助,