ruby curb POST transfer-encoding:Chunked示例

时间:2014-02-21 23:06:53

标签: ruby http curb

我正在查看用于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执行的功能

0 个答案:

没有答案