-->

如何上传在Ruby中使用RESTClient实现文件?(How to upload a file u

2019-10-21 07:26发布

我想上传在Ruby中的文件。 下面是使用curl的REST调用的一个样本。

curl --sslv3 -k -v -i -X POST \
-H "Content-Type: multipart/mixed" \
-H "Accept: application/json" \
-H "Cookie: token=ABC; SESSION=13217EBA128F6ABC9E9AD095D602E4AB;" \
-F "metadata=@input_payload_file.json; type=application/json" \
-F "content=@MyFile.jpg; type=image/jpg"  \
https://abc.com/attachments.

可一些请给我上面的Ruby等价物。 我曾尝试以下,没有成功。

$fileitem = File.new('C:\log.txt', 'rb');
$fileinfo = '{"fileName":"log.txt", "resourceName":"log.txt",  "description":"Created using REST"}';

response =RestClient::Request.execute(
   :method => :post,
   :url => $UploadURL,
   :headers => {:content_type => 'multipart/mixed', :accept => 'application/json'},
   :cookies => {:token=> :"#{cust}",:SESSIONID => :"#{ssid}"},
   :payload => $fileinfo,
   :myfile => $fileitem
)

感谢您事先的任何指导。

拉维..

Answer 1:

最后得到的代码工作。 清理臭代码。 下面是运作良好,而张贴的multipart /混合模式数据的语法。

response =RestClient::Request.execute(
   :method => :post,
   :url => uploadURL,
   :headers => {:content_type => 'multipart/mixed', :accept => 'application/json'},
   :cookies => {:token => cust,:SESSIONID => ssid },
   :payload => {:metadata => fileinfo, :content => fileitem, }
)


文章来源: How to upload a file using RestClient in Ruby?