ruby 如何使用Rails缓存附加的Excel文件?

bweufnob  于 12个月前  发布在  Ruby
关注(0)|答案(1)|浏览(109)

我有一个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
如果有人能给我指出正确的方向,我会非常感激的。

p5fdfcr1

p5fdfcr11#

不知道什么是最好的方法来做到这一点。通常我保存文件在tmp文件夹,并创建一个作业删除后,1小时
如果要使用缓存,可以使用

File.open(<filename>, "w+") do |f|     
  f.write(Rails.cache.read(cache_key))   
end

字符串

相关问题