要从Active Storage中删除所有数据?

Pro*_*z1g 5 ruby ruby-on-rails ruby-on-rails-5 ruby-on-rails-5.2

我想知道如何删除活动存储中的所有数据,甚至重置活动存储?有什么办法吗?先感谢您!

注意:我正在使用Rails 5.2

iGi*_*ian 14

这个问题对我构成了挑战,因此我在具有本地存储的虚拟应用程序上进行了一些测试。

我通常的模式User,其has_one_attached :avatar

在本地存储中,文件保存在/storage文件夹中的子文件夹下,该子文件夹随机命名为两个字符。

与文件有关的信息存储在两个表中:

为了彻底清理这两张桌子,我在进行以下操作rails console

ActiveStorage::Attachment.all.each { |attachment| attachment.purge }
Run Code Online (Sandbox Code Playgroud)

该命令删除

  • 该表中的所有记录: ActiveStorage::Attachment.any? #=> false
  • 所有斑点: ActiveStorage::Blob.any? #=> false
  • 所有文件都位于/storage子文件夹下;当然,子文件夹仍然是空的。

ActiveStorage仍然可以正常工作。

我期望具有正确的特权的远程存储具有相同的行为。

  • @thiebo 是的,我会在 PROD 上为我们的应用程序验证它。 (2认同)