我发现当发一个带图片的帖子的时候,或者说带上传文件的帖子的时候。 如果你已经把附件上传到服务器了,但是最后并没有发表帖子,会导致这些附件成为类似于内存泄露一样的野指针。没有任何对象会引用它们,不能被编辑,也不能删除,一直存在与服务器上面。
目前发现很多论坛都有这类问题。不知道有没有好的解决方法?
做了下实验,ruby-china 也有这类问题,例如: //l.ruby-china.com/photo/aa99bf22c87964fea9821d778908b0e9.jpg //l.ruby-china.com/photo/dd0c454687532557188f0a0b970c9a9e.png
你这样想,图是图,贴是贴,二者木关系不就 o 了。
可以把上传的图片保存在一个临时目录,表单正式提交后再把图片从临时目录移到正式目录啊。后台再加一个 job,定期清理临时目录下的图片。
#2 楼 @huobazi 同意
carrierwave 是保存到临时目录里的
这和内存泄露产生的副作用完全不同。@huobazi +1
能有多少浪费啊,也就一点点而已,无需太在意
可以只允许注册用户上传,每上传一次,就把信息记录到该用户名下, 每名用户可以限制上传文件的数量和大小。