Я использую Carrierwave и carrierwave-base64 для загрузки файлов на Amazon S3 .
Carrierwave
carrierwave-base64
Как можно сжать загруженные файлы, только если они превышают xMB. Файлы в формате JPEG, PNG и JPG в виде изображений.
xMB
Я думаю, вы можете использовать before :store крючок. Например:
before :store
before :store, :compress_file def compress_file(_file) file_size = (File.size(file.path).to_f / 2**20) if file_size > x # compress file end end