Ruby on rails 在Heroku的Sidekiq中使用延迟回形针

Ruby on rails 在Heroku的Sidekiq中使用延迟回形针,ruby-on-rails,heroku,paperclip,sidekiq,Ruby On Rails,Heroku,Paperclip,Sidekiq,奇怪的是,我有一个问题在任何地方都没有得到解决 我正在使用回形针将附件上传到Heroku应用程序中的S3。但由于上传需要时间,我开始使用延迟回形针。但问题是Sidekiq worker失败,并显示一条错误消息“无法打开文件或找不到文件”。这非常有意义,因为heroku worker和web在不同的Dyno上运行 有什么解决办法吗?除了网络必须上传到S3之外,这违背了整个目的 对我来说,最根本的问题是我无法在web和worker之间共享tmp文件夹中的文件上传过程与Rails应用程序根本不相关,如

奇怪的是,我有一个问题在任何地方都没有得到解决

我正在使用回形针将附件上传到Heroku应用程序中的S3。但由于上传需要时间,我开始使用延迟回形针。但问题是Sidekiq worker失败,并显示一条错误消息“无法打开文件或找不到文件”。这非常有意义,因为heroku worker和web在不同的Dyno上运行

有什么解决办法吗?除了网络必须上传到S3之外,这违背了整个目的


对我来说,最根本的问题是我无法在web和worker之间共享tmp文件夹中的文件

上传过程与Rails应用程序根本不相关,如果处理文件花费太多时间,您会有改进,但在您的情况下,这个问题听起来像是与一个大文件和缓慢的网络有关

对我来说,底线问题是我无法在网络和工作人员之间共享tmp文件夹中的文件。请查看Mile Perham的答案,你需要将文件存储在像Amazon S3这样的服务上,然后从Sidekiq获取url。你已经回答了自己的问题。你必须使用某种类型的共享存储,S3是最常见的,因为Heroku已经在EC2中运行了。是的,@MikePerham,但我必须通过控制器的阻塞调用将我的图像上传到S3。如果我的sidekiq工作需要一分钟,我还可以,但控制器动作缓慢,我就不行。尽管如此,这仍然是一个好办法。感谢有几种方法可以让浏览器直接将图像推送到S3存储桶,而不是通过Rails应用程序。