Как я могу сохранить или сохранить в памяти загруженные изображения в приложении rails - PullRequest
0 голосов
/ 24 октября 2018

Я определил это:

def images_base64(images)
  images.map {|image| image.image}
end

и затем я загружаю изображения, подобные этому, в файл haml:

  - images_base64(@document.meta.images).each do |image|
      = image_tag "data:image/png;base64, #{image}", width: '600px'

есть ли способ сохранить или сохранить в памяти загруженные изображенияв рельсах?

1 Ответ

0 голосов
/ 24 октября 2018

На первый взгляд это звучит как плохая идея, не зная больше, почему вы хотите это сделать?Любая причина, по которой эти изображения не только в S3?Я говорю это потому, что использование чего-то вроде S3 для обслуживания файлов - гораздо более эффективное использование ресурсов, чем использование Rails для перетасовки огромных файлов обратно в свои ответы.

Также, когда вы говорите «в памяти», это может означать много вещей.Как будто вы имеете в виду кэширование этого гигантского списка тегов изображений в Memcache или Redis.Таким образом, вы можете фрагментировать кэш вокруг images_base64 в вашем HAML-файле с помощью чего-то вроде cache document do. Это позволит сохранить кусок html image_tag со строками изображений base64 в вашем хранилище кеша.

И это худшая идея: вы можете запомнить изображения в памяти.Вот ссылка на выполнение заметок с параметрами: http://gavinmiller.io/2013/advanced-memoization-in-ruby/. Я упоминаю об этом только потому, что вы сказали "память загружена".Но я действительно не думаю, что вы хотите такой подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...