载波上传缓存功能如何工作?据我所知read ,看起来它会将上传的文件保存在public/uploads/tmp
中以避免在重新显示表单时重新上传。我猜缓存会被分配一个唯一的ID,但仍然可以公开访问。如何使敏感上传更安全或完全禁用此功能?
避免这种情况的一种方法是将上传器作为与目标模型分开的模型,这样验证错误就不需要重新上传。
最佳答案
CarrierWave 将上传的图像保存在缓存目录中,因此您可以轻松地在验证错误的情况下重新提交表单,而无需强制用户重新上传图像。
默认缓存目录为public/uploads/tmp
但是您可以通过设置 cache_dir
来更改它配置参数。
通常上传的图片无需认证即可下载。因此,将上传和缓存的文件放在公共(public)目录中是可以的。您还可以更改您的上传者类以拥有 filename
生成唯一随机 ID 以使其不易被猜测的方法。
顺便说一句,this blog post介绍了如何在云中存储和转换图像并通过 CDN 交付时集成 CarrierWave。
关于ruby-on-rails - 载波上传缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10184927/