CouchDB + Ruby中的独立附件

时间:2010-04-20 14:27:11

标签: ruby couchdb attachment

是否有人使用独立附件API(如果可能的话,gziped)从ruby发送到couchDB的独立附件? 我知道有一些CURL的例子,但到目前为止我对Typhoeus的尝试还没有成功。它通常只是停止并等待>在前几个文件后1分钟 CouchRest似乎不支持它,我看过的任何其他库也没有支持

编辑:澄清 我不是在寻找常规的Base64编码附件。 CouchRest做得很好。

2 个答案:

答案 0 :(得分:1)

使用了typhoeus

Typhoeus::Request.put("http://127.0.0.1:5984/db/document/my_attachment_name?rev=#{rev}", "content-type" => "text/html", "Content-Encoding" => "gzip", "Accept-Encoding" => "gzip", :body => my_html_body)

这会将“my_html_body”字符串存储为couchDB,作为gziped独立附件

答案 1 :(得分:1)

对于二进制独立附件,我只使用IO.read(“/ path / to / my / file”)将put方法的字符串作为:body。看起来它正在工作,但我不知道这是否是正确的方法。

看起来像这样:

  res = Typhoeus::Request.get("http://localhost:5984/_uuids")
  uuid = JSON.parse(res.body)["uuids"].first
  doc = {}
  doc["name"] = name
  ...
  res = Typhoeus::Request.put("http://localhost:5984/products/#{uuid}", :body => JSON.generate(doc))
  res = Typhoeus::Request.put("http://localhost:5984/products/#{uuid}/image.jpg?rev=#{rev}", :headers => {"Content-Type" => "image/jpeg" }, :body => IO.read("output/images/#{image}"))