我有一个存储在 S3 上的图像文件。我想将该文件作为表单数据上传到远程站点。
控制器线:
response = RestClient.post("#{BASE_URL}/processImage?language=#{LANGUAGE}&exportFormat=txt", :upload => { :file => File.new(asset.avatar.url) })
assets.avatar.url 是一个位于 S3 上的回形针存储文件。在那里。它是公开的。
但是我不断收到带有 url 的 Errno::ENOENT (No such file or directory) ......这很有效!
我可能在这里遗漏了一些简单的东西。有人有想法么?
** 编辑:已解决 **
我使用了 open-uri,然后只使用了 open()。它仍然下载到服务器,但至少它可以工作。而且视觉上看起来更简单。=)
这是修复:
require 'open-uri'
response = RestClient.post("#{BASE_URL}/processImage?language=#{LANGUAGE}&exportFormat=txt", :upload => { :file => open(asset.avatar.url) })
Open-uri 是 ruby 的一部分,因此您不需要安装 gem(即:rest-client),只需在您的代码中使用它即可。
我以为我需要一个 .read 在那里的某个地方,但没有它似乎可以正常工作。