Необходимо загрузить большой медиа-файл (больше доступной RAM) на хранилище S3, предварительно закодировав его в Base64.
Помогите оптимизировать код на Ruby так, чтобы чтение файла, кодирование в Base64 и последующая загрузка на S3 были выполнены поблочно.
blob = StringIO.new( Base64.encode64( IO.binread('big_file.mp4')), 'rb' )
...
@client.put_object(
bucket: @s3_bucket.name,
key: target_name,
body: blob,
acl: 'public-read'
)
В документации Base64.encode64 нет возможности обрабатывать файловый поток поблочно. Есть какие-то трюки?