gpt4 book ai didi

ruby-on-rails - 以法拉第为参数发布图像

转载 作者:行者123 更新时间:2023-12-04 03:40:12 24 4
gpt4 key购买 nike

我有一个旧服务和新服务,上面有图像。我想将图像从旧迁移到新。为此,我需要从我的旧服务中获取图像,然后将其发布到新的 sinatra 服务。
我能够使用 NET::HTTP 以我想要的格式发布图像

  url = URI.parse('http://0.0.0.0:9292/')
File.open("./Belgium.png") do |jpg|
req = Net::HTTP::Post::Multipart.new url.path, {"image" => UploadIO.new(jpg, "image/jpeg", "Belgium.jpg"), id:4234}
res = Net::HTTP.start(url.host, url.port) do |http|
http.request(req)
end
end

我在 sinatra 服务中使用上述 post 方法获得的参数是
params = {"image"=>
{:filename=>"Belgium.jpg", :type=>"image/jpeg",:name=>"image",:tempfile=> #<File:/var/folders/h7/f9cvygqs3lg78kwh24v8yzp80000gn/T/RackMultipart20120827-76057-1f3inkn>,
:head=> "Content-Disposition: form-data; name=\"image\";filename=\"Belgium.jpg\"\r\nContent-Length: 28228\r\nContent-Type: image/jpeg\r\nContent-Transfer-Encoding: binary\r\n"},
"id"=>"4234"}

但是我无法获得与法拉第相同的结果。我尝试使用类似的东西:
payload = { :profile_pic => Faraday::UploadIO.new('avatar.jpg', 'image/jpeg') }
Faraday.post 'http://0.0.0.0:9292/', payload

在我的服务中,我得到了这样的东西:
"#<'UploadIO:0x007fb950373de8>"一个对象。这不是我对我的服务所期望的。

我怎样才能获得与 Net::HTTP 相同的行为。我认为它必须使用中间件做一些事情,我尝试进行调整,但我仍然是新手。

最佳答案

关于什么:

conn = Faraday.new(:url => 'http://0.0.0.0:9292' ) do |faraday|
faraday.request :multipart
end
payload = { :profile_pic => Faraday::UploadIO.new('avatar.jpg', 'image/jpeg') }
conn.post 'http://0.0.0.0:9292/', payload

关于ruby-on-rails - 以法拉第为参数发布图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12146407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com