我正在建立一个网站,我想保护某些图像不被下载。只有授权用户才能下载它们。
当我使用 Carrierwave 上传图像时,它们存储在public/uploads/image
. 用户可以通过链接下载它们:
def transmit
send_file(Rails.root.join('public' , 'uploads', 'image', filename.to_s)
end
如何保护image
文件夹内的图像,使未经授权的用户无法访问它们?假设users
table 有 boolean column authorized
。
最好的方法是什么?
编辑1:
我知道我可以before_action
让未经授权的用户通过下载链接下载它,但如果用户知道存储图像的文件夹的路径,图像仍然可以访问。