2010-08-10 101 views
1

foobar的,我嘗試執行功能:耙回形針:刷新類=從S3

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。它的工作原理,但沒有解決問題

回答

4

我的假設是準確的。 foob​​ar的image屬性中列出的文件與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個記錄。別擔心。

好奇,但如果有人有更聰明的方式做到這一點。我似乎有點緩慢和乏味。

+0

奇怪的是,回形針還沒有更新,不會彈出。非常令人失望。感謝您的解決! – 2011-02-02 08:13:23

+0

非常有用,謝謝! 我使用回形針2.3.12,我想知道這是否已經在任何2.3.x版本中修復... – dgilperez 2011-10-25 15:53:34