ruby-on-rails - 载波上传缓存

标签 ruby-on-rails security carrierwave

载波上传缓存功能如何工作?据我所知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/

相关文章:

ruby-on-rails - 我应该在我的 Rails 应用程序中将独立的非 ruby​​ 脚本保存在哪里?

php - 通过sqlmap验证sql注入(inject)

ruby-on-rails-3 - rierwave minimagick 转换的 svg 不兼容

database - 如何存储别人的密码?

html - CSS 无法在 Edge 浏览器上的 Sharepoint 中正确显示(SEC7111 错误)

ruby-on-rails - Rails 4.2.6 + 多态 + Carrierwave 0.10 + 条件

ios - 使用载波将图像从 iphone 应用程序上传到 Rails 应用程序

css - rails - 在生产模式下找不到 application.css Assets

javascript - 我怎样才能让 URL 中的电子邮件地址显示在我的网页上,使用 javascript 或 HTML 构建在 Ruby on Rails 上的网站?

mysql - unicorn rails 真的需要一个数据库连接池吗?