在Rails 6中默认清除blobs。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Rails 6中默认清除blobs。相关的知识,希望对你有一定的参考价值。
移除一个 活动存储 对象并没有清除blob,而是从数据库中删除了记录,但文件仍然存在。它删除了数据库中的记录,但文件仍然存在。我们需要手动调用 purge
或 purge_later
以便永久删除该文件。
这让我很意外,为什么要删除引用而保留文件?
有没有办法改变默认值,告诉Rails在记录被删除时总是清除blobfile?
或者,我可以手动检查是否有附件被删除,并在 after_save
钩子,或者用一个cronjob来定期删除所有孤儿文件。什么是最合适的方法?
找到了,我正在使用Rails 6中的purge_later来清除blob。我使用的是 公寓 gem,并且忘记了排除ActiveStorage模型。Apartment gem使用数据库视图,所以它将从数据库中删除引用,但我猜测 purge_later
不在同一数据库范围内运行。
不包括在 config/initializers/apartment.rb
做到了这一点。
config.excluded_models = %w{ ActiveStorage::Attachment ActiveStorage::Blob }
以上是关于在Rails 6中默认清除blobs。的主要内容,如果未能解决你的问题,请参考以下文章
升级到 Rails 6.1.0 后 ActiveStorage::Blob 的未定义方法“service_name”
以下代码片段是不是容易受到 Rails 5 中 SQL 注入的影响?
如何在rails中使用carrierwave保存blob文件
已解决在react+ts中 atnd 用 upload 组件报错Failed to execute ‘readAsArrayBuffer,param 1 is notof type Blob(代码片段
已解决在react+ts中 atnd 用 upload 组件报错Failed to execute ‘readAsArrayBuffer,param 1 is notof type Blob(代码片段