скрепка граблей: класс обновления = foobar от S3 - PullRequest
1 голос
/ 10 августа 2010

Я пытаюсь выполнить функцию:

rake paperclip:refresh class=foobar

И она начинает работать, но, похоже, зависает с этим стеком ..:

** Invoke paperclip:refresh (first_time)
** Invoke paperclip:refresh:metadata (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute paperclip:refresh:metadata
rake aborted!
The specified key does not exist.

ТакМне любопытно, потому что я знаю, что некоторых расширений в этом классе больше нет.Так что я предполагаю, что, поскольку он не может найти одного из них, он разочаровывается во всем процессе.Есть ли способ сказать, skip over files if they do not exist?

Или эта ошибка из-за более серьезной проблемы, например, все ваше ведро s3 не может быть найдено с помощью скрепки: задача освежения.Обновление

Пока что пробовал rake paperclip:clean class=foobar.Работает, но не решает проблему

1 Ответ

4 голосов
/ 10 августа 2010

Мое предположение было верным. Файл, указанный в атрибуте изображения foobar, не соответствует тому, что был на S3, поэтому он взрывается для всей задачи.

Вместо этого я script/console 'написал и написал:

first_batch = Foobar.find(:all) { |f| f.id > 0 && f.id < 100 }

first_batch.select { |f| f.image.reprocess! if f.image.exists? }

Я пытался сделать одно большое изменение в группе, но оно ERRCONN пропало. Так что я разделил их на партии по 100. Всего 430 записей. Не беспокойся.

Любопытно, если у кого-нибудь есть более умный способ сделать это. Мой кажется немного медленным и утомительным.

...