Гем обработки изображений создает файл с измененным размером в GCS
У меня есть объект Item, который #
has_many_attached :photos
. Моя служба активного хранилища - это GCS. Я создал метод экземпляра #thumbnail() для Item. Нравится:
def thumbnail(photo)
photo.variant(resize_and_pad: [400, 400, gravity: 'center', background: '#3D4453'])
end
Я назвал его в файле items show.html.erb как:
<% @item.photos.each do |photo| %>
<%= image_tag(@item.thumbnail(photo)) %>
<% end %>
Однако это привело к загрузке фотографий с измененным размером в GCS Bucket. Так что я получаю фотографии нормального размера и фотографии с измененным размером в моем ведре. Как мне этого избежать?
1 ответ
Согласно документации ActiveStorage для
variants
, предполагается, что варианты загружаются в используемую вами службу хранения (в данном случае GCS), которая затем возвращает URL-адрес варианта для использования в вашем приложении:
Это проверит, что вариант уже был обработан и загружен в сервис, и, если это так, просто вернет это. В противном случае он выполнит преобразования, загрузит вариант в сервис и снова вернется сам.
Этот связанный поток исследует такое поведение при наличии варианта и исходного файла, и он сводится к созданию функциональности для удаления файлов вариантов, поскольку API, похоже, не поддерживает это. Для удаления определенных файлов вариантов этот другой вопрос касается этой проблемы.