【发布时间】:2014-07-14 14:21:04
【问题描述】:
我有一个简单的设置,用于我在 Rails 中构建的 API。
通过 POST 上传 zip,然后我获取文件,使用carrierwave 将其存储在rails.root/tmp 中,然后使用sidekiq 进行s3 上传。
我暂时存储文件的原因是因为我无法将复杂对象发送到sidekiq,所以我存储它并发送id,让sidekiq找到它并使用它,然后在完成后删除文件.
问题是,一旦我的 sidekiq 工作人员需要按路径查找文件,它就不能,因为它不存在。我读过 Heroku 的临时文件系统会在重新配置/重新启动服务器等时删除其文件。
这些事情都没有发生,但是文件不存在。所以我的理论是sidekiq工作人员实际上是在尝试在自己的文件系统上打开传递给它的路径,因为它是一个单独的工作人员并且该文件不存在。有人可以证实这一点吗?如果是这种情况,是否有任何替代方法可以做到这一点?
【问题讨论】:
标签: ruby-on-rails file-upload heroku carrierwave sidekiq