我正在構建一個網站,我希望保護某些圖像免於下載。只有授權用戶才能下載它們。保護使用Carrierwave上傳的圖像
當我使用Carrierwave上傳圖像時,它們被存儲在public/uploads/image
之內。
def transmit
send_file(Rails.root.join('public' , 'uploads', 'image', filename.to_s)
end
如何保護內部image
文件夾,使未經授權的用戶的圖像不能訪問它們:用戶可以通過鏈接下載呢?假設users
表具有布爾列authorized
。
什麼是最好的方法來做到這一點?
EDIT1:
我知道我可以讓before_action
它不會允許未經授權的用戶通過下載鏈接下載它,但如果用戶知道路徑在哪裏存儲圖像的文件夾的圖像仍然可以訪問。
不要將它們存儲在公用文件夾 - 它們存儲在文件系統中的其他地方。 – sevenseacat
@sevenseacat,謝謝。問題是我需要一些版本的圖像供公衆展示,所以我該如何做到這一點?我可以將不同的圖像版本存儲到不同的位置?我想有一些縮略圖存儲在公用文件夾和私人文件夾內的原件。 – user3339562