我有一个Product
模型,has_one_attached :file
。
当一个产品被创建,一个excel文件被附加到它. Tipically,excel文件需要再次访问的另一个进程内1小时的产品被创建,所以我认为这将是明智的缓存此文件,所以它不需要在1小时内再次下载.
我现在正在访问附件,如下所示:
product.file.open do |file|
...
end
字符串
但当这种情况发生时,我可以在服务器日志中看到以下内容:
S3 Storage (1320.9ms) Downloaded file from key: arxnfly66hk6imt7ksa6w1w16
型
有很多缓存技术,我不知道哪一个适合这个。
我试过这样的方法:
product.file.open do |file|
Rails.cache.write(cache_key, file.read, expires_in: 1.hour)
end
型
但这似乎不起作用。file.read
返回一个非常长的字符串,我不知道如何将其转换回excel文件,无论哪种方式执行Rails.cache.read(cache_key)
都返回nil
如果有人能给我指出正确的方向,我会非常感激的。
1条答案
按热度按时间p5fdfcr11#
不知道什么是最好的方法来做到这一点。通常我保存文件在
tmp
文件夹,并创建一个作业删除后,1小时如果要使用缓存,可以使用
字符串