Гем обработки изображений создает файл с измененным размером в 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, похоже, не поддерживает это. Для удаления определенных файлов вариантов этот другой вопрос касается этой проблемы.

Другие вопросы по тегам