Я только что обнаружил, что у Heroku нет долговременного хранилища файлов, поэтому мне нужно перейти к использованию S3 или аналогичного. Множество новых бит и частей, чтобы опустить голову, я понял, как прямая загрузка на S3 с использованием CarrierWave-direct
, а затем обработка delayed_job
должна работать с моим Rails-приложением?Rails, хранилище Amazon S3, CarrierWave-Direct и delayed_job - это правильно?
То, что я думаю, что должно произойти, если я правильно закодировать это следующее:
- Я подписаться на S3 счет, установленный мое ведро (ы) и получить данные аутентификации и т.д., что мне нужно будет программировать (соответственно скрыты от моих пользователей)
- Я убеждаюсь, что прямая загрузка белые списки не остановить междоменного от предотвращения мои добавления (и позже загрузки)
- я использую
CarrierWave
&CarrierWave-direct
(или аналогичный), чтобы создайте мои загрузки, чтобы не загружать мое приложение во время загрузки - S3 создаст информацию с произвольным доступом ('filename'), поэтому мне не нужно беспокоиться о том, что несколько пользователей загружают файлы с тем же именем и файлы, которые будут перезаписаны; если меня интересуют исходные имена, я могу использовать метаданные для их хранения.
CarrierWave-direct
перенаправляет браузер пользователя на «загруженный завершенный» URL после загрузки с того места, где я могу либо создать delayed_job, либо всплывающее уведомление «извините, это пошло не так».- На этом этапе пользователь знает, что задание будет предпринято, и они перейдут к другому материалу.
- My
delayed_job
task обращается к файлу с помощью S3 API и может удалить входной файл по завершении. delayed_job
завершает и уведомляет пользователя обычным способом, например. электронное письмо.
Это или я что-то не хватает? Благодарю.