首页 > 解决方案 > 你能从 ActiveStorage 中删除一个变体吗?

问题描述

在 Rails 中使用ActiveStorage,可以在创建变体时“按需”添加变体。它们现在保存在一些存储(磁盘、S3、谷歌云等)中。

如果您意识到某些变体毕竟是不需要的,并更改您的代码以不调用它们......我认为它们仍将保留在存储中。

如何清理这些,不占用存储空间?我找不到任何 ActiveStorage API 来删除变体。

标签: ruby-on-railsrails-activestorage

解决方案


您可以使用key. 一个变体的是由它的 blob 和转换来识别的。因此,您可以像这样删除特定的变体:

avatar = user.avatar
variant = avatar.variant(resize: '100x100')
avatar.service.delete(variant.key)

推荐阅读