在 rails 6 上的公共文件上使用 sidekiq 出现错误“IOError:文件 /.../ 不存在”

问题描述

当我的工作人员(在 Heroku 上使用 Sidekiq)尝试读取我使用 Carrierwave gem 上传的公共文件时出现此错误

2021-02-28T01:55:14.424963+00:00 app[worker.1]: pid=4 tid=gt1kpgehs WARN: IOError: file /app/public/uploads/excel_doc/attachment/240/lista_1.xlsx does not exist

我正在尝试使用 'roo' gem 读取 excel 文件上传

doc = Roo::Spreadsheet.open(self.attachment,extension: :xlsx)

我已经尝试从特定路径(认情况下存储的位置,并移动到 tmp 文件夹)读取文件

  1. excel_path = "public/uploads/excel_doc/attachment/#{id}/" + attachment.identifier

  2. excel_path = "#{Rails.root}/tmp/excel_doc/attachment/#{id}/" + attachment.identifier

但是出现了同样的错误

注意:在我的本地主机中一切正常,在生产中它会崩溃

我认为 Heroku 服务器的配置不好,我有这个:

Heroku redis connection

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)