【问题标题】:How to convert base64 encoded string to HTTP::FormData::File in Ruby?如何在 Ruby 中将 base64 编码字符串转换为 HTTP::FormData::File?
【发布时间】:2017-03-24 21:34:51
【问题描述】:

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

Base64.decode(the_string)

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

我该如何做到这一点没有将文件写入磁盘并在使用中读回

HTTP::FormData::File.new("/path/to/file.pdf")

谢谢

【问题讨论】:

  • 什么是HTTP::FormData::File?它不是标准库的一部分。它是由一些宝石提供的吗?如果是这样,您需要编辑您的问题以包含该信息和一个链接。

标签: ruby base64


【解决方案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")

【讨论】:

    猜你喜欢
    • 2022-11-09
    • 2014-12-03
    • 1970-01-01
    • 2019-02-16
    • 2012-11-12
    • 1970-01-01
    • 2018-08-05
    • 2014-04-08
    • 1970-01-01
    相关资源
    最近更新 更多