Скрепка для s3 быстро и без - PullRequest
2 голосов
/ 20 марта 2012

У меня есть приложение, в котором я разрешаю людям загружать изображения, а затем изменять их размер.Он написан в рельсах и в значительной степени основан на http://railscasts.com/episodes/182-cropping-images

. В настоящее время он хранит файлы на Amazon S3, и все работает, но это занимает вечность: 14 КБ файла занимает 14 секунд, чтобы сохранить в S3 (я могпочти с этим) 750-килобайтный файл занимает 3 минуты для сохранения в S3 (молодой программист убит боссом ...)

Требования:

* The images need to be associated against my rails model like standard paperclip
* I need to be able to display the image as soon as possible so that I can let the user resize it, I cannot just assign it to a background job because I need to display it ASAP.
* I am hosting on heroku (cedar stack) so can only use the file system temporarily.

Я посмотрелкуча учебников в Интернете и поиск, и кажется, что большинство из них предлагают использовать что-то вроде https://github.com/nathancolgate/s3-swf-upload-plugin Это, однако, все еще будет довольно медленным подходом, потому что сначала вы должны отправить файл на S3 (большой файл занимает около 30 секундиз Новой Зеландии :), затем вы должны выбрать область обрезки и нажмите кнопку Отправить.Затем сервер heroku загрузит исходное изображение S3 и обрежет его, а затем отправит обратно, что займет много времени.

Первый шаг не может быть выполнен в качестве фонового процесса, потому что мне нужно просмотреть изображение так,Я могу обрезать его (вторая часть, вероятно, может происходить как фоновый процесс).

В настоящее время я думаю, что хорошим подходом было бы просто настроить скрепку для загрузки и обработки изображений во временном хранилище, предоставленноммой кедровый герой сервер.Затем каждые пару минут я мог запускать фоновый процесс, который ищет файлы на сервере heroku и отправляет их на сервер S3.Потребуется несколько небольших настроек, чтобы иногда искать изображение в файловой системе, а не в S3, но это должно быть выполнимо.

Я никогда раньше не использовал DJ.Кто-нибудь пробовал такой подход с героку и S3?

...