Я создаю билеты в формате PDF с использованием Prawn, и я, например, вставлю активный образ хранилища, например:
def image_data(attachment)
StringIO.new attachment.download
end
image image_data(ticket_template.background)
Но я заметил, что некоторые клиенты имеютмного билетов, и все они используют одно и то же изображение.ActiveStorage загружает изображение каждый раз из S3, поэтому, если у клиента есть около 10 билетов, это может привести к тайм-ауту при загрузке всех из них.
Я нахожусь на heroku, поэтому, даже если файловая системаЯ подумал, что было бы неплохо использовать дисковый кеш для извлечения или загрузки изображений по мере необходимости.Но я нервничаю по поводу добавления кеширования и возникновения проблем.
Я думал о добавлении класса lib, такого как этот:
class ImageCacher
def self.get(record, attachment)
## fetch from disk, or download from S3
end
end
Поиск советов и идей по реализации этого.