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