2010-10-25 12 views
0

我正在使用回形針,除其他外,允許註冊用戶上傳頭像以供他人使用。我想存儲大小版本的圖像,這些圖像會被放大到標準大小。現在,我想要做的是存儲這兩個標準尺寸(例如:normal和:tiny),但我不想存儲:original。如何丟棄原始圖像文件並使用Paperclip和Rails 3保留大小?

這將是很好的幾個原因,因爲我永遠不會顯示或使用任何版本比兩個標準(重新)大小。

回答

1

你想要刪除文件的理由是什麼?現在文件存儲非常便宜,它不再是一個真正有效的理由。

我會建議不要刪除原始文件。如果您決定使用Paperclip的耙子任務來調整文件大小,則需要原始文件。

+0

一個很好的問題。我計劃只使用兩種尺寸的頭像圖片。我希望他們都是標準的,所以我調整他們上傳到兩個版本的任何東西。你有一點,我只是認爲如果不是太困難,值得實施。我想,我真的很想知道如何。也許它不是Paperclip的預期用途。 :)我只會設置最大尺寸,以免人們無法上傳大量原件!謝謝! – 2010-10-26 00:03:19

1

我不能想辦法用Paperclip直接做到這一點,但是您可以在創建記錄後手動刪除原始文件。一個例子可能是這樣的:

class Photo 
    has_attached_file :photo 

    after_create :destroy_original 

    protected 

    def destroy_original 
     # photo.url will look something like /system/photos/1/original.png 
     File.unlink("#{Rails.root}/public#{self.photo.url}") 
    end 

end 
+0

我喜歡這個想法,但我使用S3,我的整個意圖是節省傳輸和存儲成本。不使用本地文件系統也會使其更復雜。我應該說。不過謝謝你! – 2010-10-25 23:26:18

相關問題