2011-02-02 3 views
2

У меня есть приложение с большим количеством изображений, загружаемых с помощью paperclip и хранящихся на S3. У меня возникли проблемы, когда S3 сообщает моему приложению iOS, что некоторые из ключей изображения не существуют (хотя я вижу, что они действительно существуют, когда я смотрю на свой ведро S3). Одна из моих теорий заключается в том, что это вызвано именами файлов, поэтому я хотел бы упростить свой путь к папке.Paperclip & S3: Как изменить путь вложения без повторной загрузки

Моего существующий путь:

:path => "/:class/:style/:id_:basename.:extension" 

Я хотел бы, чтобы это было

:path => "/:class/:id/:style.:extension" 

, который намного чист.

Моя проблема в том, что я не уверен, как это сделать. Моя первая мысль заключалась в том, чтобы изменить строку формата пути в модели и затем переработать! все вложения, но теперь я понимаю, что paperclip должен использовать исходный путь, чтобы получить исходные загруженные изображения, прежде чем он сможет обработать и сохранить изображения на новый путь.

Есть простой, быстрый способ внести это изменение?

Спасибо!

ответ

1

Вы не можете «переименовать» объект в S3. Однако есть copy command, который будет дублировать объект в S3. После дублирования объекта удалите оригинал.

+0

Спасибо за информацию. На самом деле, я могу использовать Transmit для монтирования своей учетной записи S3, как файловой системы на моем mac, поэтому я мог бы использовать какую-то макетную переименование магии, чтобы сделать трюк ... Я просто не знаю, что магия в этот момент. :) – CharlieMezak

+0

Если вы знаете Java, [JetS3t] (http://jets3t.s3.amazonaws.com/toolkit/code-samples.html#moving) делает [batching] (http://jets3t.s3.amazonaws.com /toolkit/code-samples.html#threaded-storage-service) довольно безболезненным. –

Смежные вопросы