【发布时间】:2017-03-27 03:33:11
【问题描述】:
我刚刚发现 Heroku 没有长期文件存储,所以我需要转而使用 S3 或类似的。很多新的点点滴滴让我头疼,所以我了解如何使用CarrierWave-direct 直接上传到 S3,然后通过delayed_job 处理应该适用于我的 Rails 应用程序吗?
如果我正确编码,我认为应该发生以下情况:
- 我注册了一个 S3 帐户,设置了我的存储桶并获取了我需要在其中进行编程的身份验证详细信息等(对我的用户适当地隐藏)
- 我确保直接上传白名单不会阻止跨域阻止我的上传(以及以后的下载)
- 我使用
CarrierWave和CarrierWave-direct(或类似名称)来创建我的上传内容,以避免在上传过程中加载我的应用 - S3 将创建随机访问(“文件名”)信息,因此我无需担心多个用户上传同名文件而文件被覆盖;如果我关心原始名称,我可以使用元数据来存储它们。
-
CarrierWave-direct将用户浏览器重定向到上传后的“上传完成”网址,我可以从中创建延迟作业或弹出“抱歉,出错了”通知。 - 此时用户知道该作业将被尝试,他们会继续做其他事情。
- 我的
delayed_job任务使用 S3 API 访问文件,完成后可以删除输入文件。 -
delayed_job以通常的方式完成并通知用户,例如一封电子邮件。
是这样还是我错过了什么?谢谢。
【问题讨论】:
标签: ruby-on-rails amazon-s3 carrierwave delayed-job