【发布时间】:2012-08-14 23:09:06
【问题描述】:
我想做一些我认为很简单的事情:
- 有一个带有这些控件的表单:
- 一个文件的文件上传
- 复选框是否应提取此文件
- 我将指定链接到哪个文件的文本输入(仅在选中复选框时需要)-
index_file
- 提交表单后:
- 如果复选框未选中,则通过 CarrierWave 将文件上传到 S3 到指定的
store_dir - 如果复选框被选中,从存档中提取所有文件(我希望只有 ZIP 存档;我需要保留目录结构),将提取的文件上传到指定的
store_dir并设置index_file在数据库中(我不需要将任何关于其他提取文件的内容保存到数据库中)
- 如果复选框未选中,则通过 CarrierWave 将文件上传到 S3 到指定的
正如我所发现的,由于 Heroku 的限制,这不是一件容易的事。这些文件会很大(数百个 MiB 或几个 GiB),所以如果可能的话,我不想从 S3 重新下载这个文件。
我认为使用 Delayed Job 或 Resque 可能会奏效,但我不确定该怎么做以及什么是我的问题的最佳解决方案。
有没有人知道如何使用尽可能少的资源来解决这个问题?如果在 Heroku 上不可行,我可以将 CarrierWave 更改为另一个上传器(Paperclip 等)和我的托管服务提供商。
我也在考虑使用 CloudFlare,这仍然可以正常工作吗?
感谢您的回答。
【问题讨论】:
-
嘿蒂米 - 你有没有在这方面取得任何进展?我自己也遇到了非常相似的挑战并寻求研究建议。
标签: ruby-on-rails heroku amazon-s3 carrierwave