在Ruby中通过HTTP传输文件

时间:2014-06-02 18:33:58

标签: ruby-on-rails ruby

我有一个HTTP API,我可以传输文件,如下所示:

curl -T / my / file / path http://server.name/api/file.in

如何将其转换为Ruby代码?

1 个答案:

答案 0 :(得分:0)

看起来像这个问题的副本,这里接受的答案可能会帮助你:Ruby: How to post a file via HTTP as multipart/form-data?

使用PUT和rest-client

根据下面的评论,我意识到curl -T命令似乎正在执行HTTP PUT,其中data参数是文件中的二进制数据。使用rest-client ruby​​ gem我相信下面的代码,可能会有一些微小的变化, - 应该为你工作:

require 'rest-client'

RestClient.put "http://server.name/api/file.in", File.read("/my/file/path")

您可能需要为某些类型的文件设置内容类型标头,尽管curl -T似乎没有这样做。在这种情况下,你会这样做:

RestClient.put "http://server.name/api/file.in", File.read("/my/file/path"), :content_type => 'text/plain'

来源:https://github.com/rest-client/rest-client/blob/master/lib/restclient.rb对RestClient模块的评论。