Подтвердить что ты не робот

Скрепка: переход из хранилища файловой системы в Amazon S3

У меня есть сайт RoR, где пользователи могут загружать фотографии. Я использую paperclip gem для загрузки фотографий и сохранения их на сервере в виде файлов. Я планирую перейти на Amazon S3 для хранения фотографий. Мне нужно переместить все мои существующие фотографии с сервера на Amazon S3. Может кто-нибудь сказать мне лучший способ для перемещения фотографий. Спасибо!

4b9b3361

Ответ 1

Вам нужно войти в свою консоль AWS и создать структуру ковша для облегчения ваших изображений. Ни S3, ни Paperclip не имеют каких-либо инструментов на пути массовых миграций из файловой системы → s3, вам нужно будет использовать инструмент s3cmd для этого. В частности, вас интересует команда s3cmd sync, что-то вроде строк:

s3cmd sync ./public/system/images/ s3://imagesbucket

Если у вас есть URL-адреса изображений, жестко закодированные в вашей базе данных (a la markdown/template code), это может быть немного сложнее. Одним из вариантов было бы вручную обновить ваши URL-адреса, чтобы указать на новое ведро. Кроме того, вы можете rack-rewrite.

Ответ 2

Вы можете легко сделать это, создав ведро на Amazon S3, имеющее ту же структуру папок, что и ваш каталог public в вашем приложении Rails.

Скажем, например, вы создаете новое ведро на Amazon S3 под названием MyBucket, и в нем есть папка под названием images. Вы просто переместите все свои изображения в папку вашего приложения Rails images в эту новую папку images.

Затем вы можете настроить свое приложение для использования ресурса хоста, как описано в этом ответе: полезно использовать S3 для Rails "public/images" ; и есть простой способ сделать это?

Если вы используете image_tag или другие помощники тегов (javascripts, stylesheets и т.д.), то он будет использовать этот asset_host для производственных сред и правильно сгенерировать URL-адрес вашего ведра S3.

Ответ 3

Я нашел этот script, который заботится о перемещении изображений в ведро Amazon S3 с использованием функции rake. https://gist.github.com/924617