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]
, Я думаю, что это поможет вам.