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

Перенос из локального хранилища скрепки в S3

Недавно мы перешли на новый веб-хост, который предлагает ограниченное пространство для хранения, поэтому мы пытаемся перенести все наши пользовательские загрузки (аватары, файлы и т.д.), загруженные с помощью самоцвета Paperclip в Amazon S3. У меня есть несколько сотен файлов, соответствующих различным моделям, которые я сейчас пытаюсь перевести в массовом порядке.

Я нашел этот документ, который представляет собой отличную задачу грабежа скрепки:

rake paperclip:refresh:missing_styles

Эта команда выполняет некоторые из моих работ для меня, однако я заметил, что это только настройка структуры файлов без отправки каких-либо данных - кроме того, она не настраивает никакие эскизы, определенные с помощью хэша :styles в вызове has_attached_file, I.e., у меня есть следующая настройка скрепки на одной из моих моделей:

class User < ActiveRecord::Base
  has_attached_file :avatar,
    :styles => {
      :thumb => "100x100#",
      :small  => "150x150>",
      :medium => "200x200" }
end

Вот пример вывода после запуска команды:

$ rake paperclip:refresh:missing_styles
Regenerating User -> avatar -> [thumb, :small, :medium]
Regenerating Mercury::Image -> image -> [:medium, :thumb]
Regenerating Profile -> image -> [:home_feature, :large, :medium, :thumb]
Regenerating Page -> preview -> [:portfolio]
Regenerating Category -> default_image -> [:home_feature, :large, :medium, :thumb]

Переход на мой S3 Bucket. Я могу видеть, что все каталоги правильно настроены и для каждого вложения, но только для оригинальных файлов изображений, и все они - 0 байтов. Неужели я не понимаю использование этой команды? Я не мог найти какой-либо другой инструмент для загрузки целых каталогов файлов навалом на S3, если там есть безопасный инструмент, который уже охватывает это без необходимости оплаты, тогда я открываю уши. Я попытался создать ruby ​​ script, чтобы подключиться к их SDK и загрузить эти файлы вручную, но их документация Ruby невелика.

4b9b3361

Ответ 1

Похоже, мне нужно было выйти за рамки рубинов на этом, s3cmd, казалось, был самым подходящим инструментом для такого рода работы. В моем случае команда sync выполнила трюк:

s3cmd sync my-app/public/system/ s3://mybucket