ruby-on-rails-3 - Heroku 上传到 S3 需要太多时间(载波和雾)

标签 ruby-on-rails-3 heroku amazon-s3 carrierwave fog

我有一个 Rails 应用程序,当用户从网络调用一个操作时,heroku 应用程序会生成一张随机图像,将该图像上传到 S3,并向用户返回该图像的公共(public) url(存储在 s3 中)。 .

“将该图像上传到 S3”需要很长时间,一个 27kb 的文件需要 20 秒,这是不可能的......我真的不知道如何解决这个问题,因为它正在工作,正在上传到 s3 但占用太多...

我正在考虑将图像存储在 Rails 应用程序的 tmp 文件夹中,但我不知道在被删除之前会在那里保存多久......有什么想法吗?

谢谢!

最佳答案

如果图像不是临时的,则不应将它们存储在 Heroku 上,因为当 dyno 变为非事件状态时它们将被删除。

我认为您应该研究将上传到 s3 的操作移至异步后台作业。有几个可用的选项:DelayedJob、Resque 和 Sidekiq 是一些更流行的后台处理功能。您还必须在 Heroku 上添加一个工作人员来处理您的后台作业。

通过将上传移至后台作业,您的用户将不会有漫长的等待时间,因为图像上传过程将单独完成。

关于ruby-on-rails-3 - Heroku 上传到 S3 需要太多时间(载波和雾),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13057621/

相关文章:

ruby - 将第一个字符大写并保留其他字符

ruby-on-rails-3 - git push heroku 失败,因为试图安装开发 gems。 BUNDLE_WITHOUT 命令不起作用

node.js - 安装 node_modules 时构建失败并显示 "host key verification failed"

git - 由于 key 未授权,将应用程序部署到 heroku 失败

python - 最小的工作 heroku django 应用程序

ruby-on-rails - Carrierwave Direct gem 上传成功后没有重定向?

mysql - 在内存中排序的数据库查询是否比在 Rails 3.2 应用程序的查询中包含该顺序需要更少的服务器资源?

amazon-s3 - 是否可以在 Amazon S3 用户之间共享 Amazon S3 存储桶?

c# - 为什么无法正确计算 Amazon S3 授权

ruby-on-rails - CarrierWave:为所有版本化文件创建相同、唯一的文件名