如何在Ruby中将base64编码的字符串转换为HTTP :: FormData :: File?

时间:2016-11-10 18:33:27

标签: ruby base64

我有一个pdf文件的base64编码字符串,我可以使用Ruby

进行解码
Base64.decode(the_string)

现在我想将它转换为HTTP::FormData::File类型的对象,然后我可以使用http post将其上传到AWS S3。

如何执行此操作 没有 将文件写入磁盘并使用

重新读取
HTTP::FormData::File.new("/path/to/file.pdf")

谢谢

1 个答案:

答案 0 :(得分:1)

我猜你正在使用http-form_data gem。在这种情况下,您的答案就在HTTP::FormData::File docs的第一个示例中。后人:

  

使用StringIO

io = StringIO.new "foo bar baz"
FormData::File.new io, :filename => "foobar.txt"

所以:

require "stringio"
require "base64"

io = StringIO.new(Base64.decode64(the_string))
file = HTTP::FormData::File.new(io, filename: "some_filename.txt")