Rails ActiveStorage и AWS сжимают изображение при загрузке - PullRequest
0 голосов
/ 04 июля 2019

Я использую ActiveStorage и aws-sdk-s3 для загрузки изображений в AWS.В настоящее время я использую mini_magick gem для отображения изображений в представлениях, используя что-то вроде

image.variant(resize: '700x300')

, который изменяет размеры изображений до 700x300 пикселей.

Я хочу сжать изображение при загрузке, скажем, исходное изображение размером 4 МБ, я хочу сжать его до чего-то вроде 250 КБ и загрузить, как это делают другие сайты.Поскольку загрузка в полном размере занимает пространство AWS и увеличивает затраты на хранение.Как я могу этого достичь?Спасибо.

1 Ответ

2 голосов
/ 04 июля 2019

Этого можно добиться, предварительно обработав изображение перед его сохранением с помощью ActiveStorage.Вы можете сделать это, используя imagemagick .

Тем не менее, из-за того, как работает ценообразование в AWS, я бы сказал, что хранилище является минимальной проблемой, вы можете найти цену здесь .Как вы можете видеть, 1 ГБ - это даже не 3 цента доллара, скорее всего, вы будете иметь более высокие затраты из-за частых передач, однако вы можете просто «перенести» изображения с более низким разрешением, если хотите сэкономить,и никогда не показывать «оригинальный» файл.

...