我正在查看用于ruby的库Curb,并且在指定Transfer-Encoding设置为chunked并指定块大小时无法看到我如何执行POST(或PUT)。
我需要能够将500kb的文件发送到一个限制为1024字节块的Web服务器。有人有例子吗?在google搜索一段时间之后,我似乎无法找到记录的方法来做到这一点,也无法找到样本。我看到很多下载(GET)版本,但与将机构分块发送到服务器不同。
修改
我发现了一个python示例,它似乎几乎与https://github.com/pycurl/pycurl/blob/master/examples/file_upload.py
相同我试图将它移植到Ruby但Ruby中的代码只是等待...稍微不同但不能告诉它还有什么
require 'curb'
curl = Curl::Easy.new
curl.setopt(Curl::CURLOPT_URL, ARGV[0])
curl.setopt(Curl::CURLOPT_UPLOAD, 1)
class MyReader
def initialize(fp)
@fp = fp
end
def read_callback(size=1)
p @fp
puts :hello
puts size
@fp.read
end
end
fp = File.open('test.rb')
reader = MyReader.new(fp)
curl.setopt(Curl::CURLOPT_READFUNCTION, fp.read)
curl.setopt(Curl::CURLOPT_INFILESIZE, fp.size)
# Start transfer
puts "uploading test.rb"
curl.on_debug { |type, data| puts data}
curl.perform
curl.close
**编辑2 **
发现执行可能表现不同。在路边,它确实无所谓。必须比较pycurl执行的功能