在Ruby-doc Net/HTTP中,有一个流式响应正文的详细示例-在尝试下载大文件时适用。
我正在寻找一个等效的代码片段,以通过PUT上传文件。花了很多时间试图使代码正常运行。我想我需要实现一个特定的接口并将其传递给request.body_stream
我需要流,因为我想在文件上载时更改其内容,以便在上载时可以访问缓冲的块。只要可以使用流式传输,我很乐意使用诸如http.rb或rest-client之类的库。
提前谢谢! 供参考,以下是有效的非流版本
uri = URI("http://localhost:1234/upload")
Net::HTTP.start(uri.host, uri.port) do |http|
request = Net::HTTP::Put.new uri
File.open("/home/files/somefile") do |f|
request.body = f.read()
end
# Ideally I would need to use **request.body_stream** instead of **body** to get streaming
http.request request do |response|
response.read_body do |result|
# display the operation result
puts result
end
end
end