你能从 ActiveStorage 中_删除_一个变体吗?
Can you _remove_ a variant from ActiveStorage?
在 Rails 中使用 ActiveStorage,变体会在您创建变体时添加 "on demand"。它们现在保存在一些存储中(磁盘、S3、google 云等)。
如果您意识到根本不需要某些变体并更改您的代码以不调用它们...我认为它们仍会保留在存储中。
如何清理它们,使它们不占用存储空间 space?我找不到任何 ActiveStorage API 来删除变体。
您可以 delete a file from ActiveStorage services (disk, s3 etc.) with its key
. And a variant's key 通过其 blob 和转换来识别。因此,您可以像这样删除特定变体:
avatar = user.avatar
variant = avatar.variant(resize: '100x100')
avatar.service.delete(variant.key)
如果再次生成所有变体的成本可以接受,或者如果您需要使大多数变体失效,那么您只需删除 variants 文件夹即可。 Rails 将在需要时再次生成变体。
在 Rails 中使用 ActiveStorage,变体会在您创建变体时添加 "on demand"。它们现在保存在一些存储中(磁盘、S3、google 云等)。
如果您意识到根本不需要某些变体并更改您的代码以不调用它们...我认为它们仍会保留在存储中。
如何清理它们,使它们不占用存储空间 space?我找不到任何 ActiveStorage API 来删除变体。
您可以 delete a file from ActiveStorage services (disk, s3 etc.) with its key
. And a variant's key 通过其 blob 和转换来识别。因此,您可以像这样删除特定变体:
avatar = user.avatar
variant = avatar.variant(resize: '100x100')
avatar.service.delete(variant.key)
如果再次生成所有变体的成本可以接受,或者如果您需要使大多数变体失效,那么您只需删除 variants 文件夹即可。 Rails 将在需要时再次生成变体。