How to encode media in base64 given URL in Ruby
The open
method:
open("http://image.com/img.jpg")
is returning a Tempfile object, while encode64
expects a String.
Calling read
on the tempfile should do the trick:
ActiveSupport::Base64.encode64(open("http://image.com/img.jpg") { |io| io.read })
To encode a file:
require 'base64'
Base64.encode64(File.open("file_path", "rb").read)
To produce the file from the encoded string:
require 'base64'
encoded_string = Base64.encode64(File.open("file_path", "rb").read)
File.open(file_name_to_create, "wb") do |file|
file.write(Base64.decode64(encoded_string))
end