我想做一些我认为很简单的事情:
- 有一个带有这些控件的表单:
- 一个文件的文件上传
- 复选框是否应提取此文件
- 我将在其中指定应链接到哪个文件的文本输入(仅在选中复选框时才需要)-
index_file
- 提交表格后:
- 如果未选中该复选框,则通过 CarrierWave 将文件上传到 S3 到指定的
store_dir
- 如果选中该复选框,则从存档中提取所有文件(我希望只有 ZIP 存档;我需要保留目录结构),将提取的文件上传到指定的
store_dir
并设置index_file
in 数据库(我不需要保存到数据库中的任何内容关于其他提取的文件)
- 如果未选中该复选框,则通过 CarrierWave 将文件上传到 S3 到指定的
正如我所发现的,由于 Heroku 的限制,这不是一件容易的事。这些文件会很大(数百个 MiB 或几个 GiB),所以如果可能的话,我不想从 S3 重新下载这个文件。
我认为使用 Delayed Job 或 Resque 可能会奏效,但我不确定该怎么做,什么是我问题的最佳解决方案。
有谁知道如何使用尽可能少的资源来解决它?如果在 Heroku 上不可行,我也可以将 CarrierWave 更改为另一个上传器(Paperclip 等)和我的托管服务提供商。
我也在考虑使用 CloudFlare,这仍然可以正常工作吗?
谢谢你的回答。