Net::HTTP::Post::Multipart файл с файлом на лету

Я пытаюсь сделать Net::HTTP:POST::Multiport и отправить некоторый текст в формате файла в API.

Я получаю данные из своей базы данных, и я не хочу создавать физические файлы, я хочу создать файл на лету с данными и отправить его в API. Сейчас у меня есть

request = Net::HTTP::Post::Multipart.new("my/path", 
                                           { "file" => UploadIO.new(file, "text/plain", file.path), 
                                             "merge" => false, 
                                             "ignore_missing" => false, 
                                             "label" => "", 
                                             "low_priority" => false })

Вот file должен быть файловым объектом, который я читаю с диска или IO Согласно http://rubydoc.info/gems/multipart-post/1.1.0/UploadIO, любая идея, как я могу просто создать JSON IO из набора строк, без необходимости создавать файл и писать к этому?

Также любая идея, как я могу сделать это через httmultiparty?

1 ответ

Да, вы можете сделать это "httmultiparty"
В вашем методе контроллера просто добавьте -

class SomeController <  ApplicationController
   def send_file
       response = Foo.post('/', :query => {
                  :file => File.new('abc.txt') # Generate your file here
       })
       # here Foo is class_name which is present in model/foo.rb
       response.code # it give response code success or failure.
   end
end

В модели просто сделайте любой файл, позвольте foo.rb и добавьте следующий код -

require 'httmultiparty'
class Foo
   include HTTMultiParty
   base_uri 'my/path' #url where to send file 
end  

Вы получите файл на своем пути, просто выполнив params[:file], Я думаю, что это поможет вам.

Другие вопросы по тегам