Скрепка: переход с хранилища файловой системы на Amazon S3 - PullRequest
17 голосов
/ 14 мая 2011

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

Ответы [ 3 ]

9 голосов
/ 27 января 2014

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

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

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

7 голосов
/ 27 мая 2011

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

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

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

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

6 голосов
/ 28 мая 2011

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

...