2013-09-06 4 views
0

У меня есть paperclip, работающий отлично, где я могу загружать файлы на свой сайт, но всякий раз, когда я делаю обновления и нажимаю новую версию сайта, все файлы, которые я загружаю через скрепку, как будто исчезают (вся информация, которая была введена в база данных остается, хотя).Загруженные файлы исчезают во время нового нажатия?

Я предполагаю, что проблема в том, что я не вытащил файлы из живой версии сайта, но всякий раз, когда я делаю git pull, он говорит мне, что все в курсе. Есть ли в любом случае для загрузки загруженных файлов. (Я бы предпочел не использовать amazon S3 для хранения файлов в настоящее время)

ответ

0

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

Если вы используете Amazon S3, тогда изображения будут сохранены на этапе s3, и он предоставит динамический url для доступа к изображениям. Затем вы сможете правильно обращаться к изображениям.

Вы также можете сохранить изображения в Dropbox. В этом приложении изображения хранятся в dropbox и работают на герою. Вы можете получить ссылку:

https://github.com/aman199002/Album-App # приложение с открытым исходным кодом для хранения альбомов (при удалении).

http://album-app.herokuapp.com #Url приложения, работающего на heroku.

+0

Таким образом, я не могу получить загруженные файлы без S3? –

+0

Вы должны хранить изображения на постоянной основе в каком-либо месте, например, s3 или dropbox. –

0

При развертывании приложения в Heroku ваш толкаемый код скомпилирован в так называемый slug - это, по сути, архив всего, что необходимо для запуска вашего приложения. Когда вы перезагружаете или масштабируете приложение, ваш оригинал slug затем копируется для запуска. Тем не менее, это только чтение, поэтому, когда вы загружаете файлы, которые они существуют на dyno, которые их получили, поэтому, если у вас было несколько динамиков, ваши файлы не существовали бы на них, и тогда они не сохраняются, когда ваше приложение перезагружается или вы нажимаете новый код, есть ли способ их получить.

Ваш единственный способ perist файлы на Heroku является использование решения внешнего хранения облака, как Amazon S3, Rackspace файлы и т.д. - к счастью, это очень просто, чтобы иметь Paperclip использовать S3 для него это механизм хранения - есть учебник по https://devcenter.heroku.com/articles/paperclip-s3