Скрепка Обновление миниатюр не работает с S3 - PullRequest
3 голосов
/ 17 апреля 2010

У меня установлен Paperclip как драгоценный камень, и я пытаюсь обновить размер миниатюр изображений. Я запускаю эту команду:

скрепка для граблей: обновление: миниатюры CLASS = пользователь

и получаю эту ошибку:

... грабли прерваны! Указанный ключ не существует.

Есть идеи?

Finn

Ответы [ 2 ]

0 голосов
/ 12 октября 2012

Скорее всего, вы загрузили вложения до того, как изменили настройки вложения на S3. Так, например, если вы:

1) Загрузил вложение с набором конфигурации для использования файловой системы для хранения 2) Изменили настройки для использования S3 3) Загрузить больше изображений 4) вызов граблей скрепкой: обновить: миниатюры

... вы получите сообщение об ошибке для всех изображений, загруженных на шаге 1. Решение состоит в том, чтобы просто просмотреть и очистить все старые вложения. Вы можете сделать это, позвонив по номеру

user.attachment.clear

Единственная проблема заключается в том, что он по-прежнему будет пытаться удалить эти изображения с S3, где они не существуют, поэтому, чтобы решить эту проблему, вы должны добавить опцию :preserve_files => true к вашему has_attached_file перед Вы начинаете очищать старые вложения. Просто убедитесь, что вы удалили :preserve_files => true, когда закончите.

0 голосов
/ 16 июня 2010

Экземпляр модели User не имеет ассоциированного эскиза. То есть. пользователь не загрузил миниатюру. Метод reprocess! не проверяет, существует ли миниатюра для каждого экземпляра модели, прежде чем пытаться получить вложение. Следовательно, S3 возвращает:

<strong>NoSuchKey</strong> The specified key does not exist.

Или это может быть связано с ошибкой в ​​обработке вложений S3:

http://github.com/tomafro/paperclip/commit/64ae23ba01885e22cc69bf1264f339784ce32fc9

...