标签: ruby-on-rails rails-activestorage
在Rails中使用ActiveStorage,在创建变体时会“按需”添加变体。它们现在保存在某些存储中(磁盘,S3,谷歌云等)。
如果您意识到毕竟不需要某些变体,并更改代码以不调用它们……我认为它们仍将保留在存储中。
一个人如何清理它们,使它们不占用存储空间?我找不到任何ActiveStorage API来删除变体。
答案 0 :(得分:4)
您可以delete来自ActiveStorage服务(磁盘,s3等)的文件及其key。变体的key通过其斑点和变换来识别。因此,您可以删除特定的变体,如下所示:
key
avatar = user.avatar variant = avatar.variant(resize: '100x100') avatar.service.delete(variant.key)
答案 1 :(得分:1)
如果再次生成所有变体的成本是可以接受的,或者您需要使大多数变体无效,则只需删除 variants 文件夹。 Rails将在需要时再次生成变体。