2012-04-17 102 views
4

carrierwave上傳緩存功能如何工作?從我的read,它看起來像它保持上傳文件在public/uploads/tmp,以避免重新上傳跨表格重新顯示。我猜測緩存會得到一個唯一的ID,但仍然可以公開訪問。如何使敏感上傳更安全或完全禁用此功能?carrierwave上傳緩存

避免這種情況的一種方法是將上傳器作爲與目標模型分離的模型,以便驗證錯誤不需要重新上傳。

回答

8

CarrierWave將上傳的圖像保存在緩存目錄中,以便在出現驗證錯誤時輕鬆地重新提交表單,而不會強制用戶重新上傳圖像。 緩存目錄默認爲public/uploads/tmp,但您可以通過設置cache_dir配置參數來更改它。

通常上傳的圖片可供下載無需驗證。因此,將上傳和緩存的文件放在公共目錄中就沒有問題了。您還可以更改您的上傳者類,使其具有生成唯一隨機ID的filename方法,使其不易被猜測。

順便說一下,this blog post描述瞭如何整合CarrierWave,同時存儲和轉換雲中的圖像並通過CDN傳遞。

+0

我正在使用Cloudinary我應該如何設置'cache_dir'? – abhishek77in 2015-08-10 14:02:01