我使用Prawn生成PDF票证,例如,我将插入一个活动的存储映像,如下所示:
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
寻找实现此目的的提示和想法。