【发布时间】:2019-03-21 05:29:49
【问题描述】:
我搞砸了,在我的开发和生产环境中使用同一个存储桶进行存储。我的问题是,如果在生产中为文件名创建的哈希与在开发中创建的哈希重叠会发生什么?有什么检查吗?有没有办法清理废弃的文件?
谢谢:)
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-5 rails-activestorage
我搞砸了,在我的开发和生产环境中使用同一个存储桶进行存储。我的问题是,如果在生产中为文件名创建的哈希与在开发中创建的哈希重叠会发生什么?有什么检查吗?有没有办法清理废弃的文件?
谢谢:)
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-5 rails-activestorage
Blob 密钥是使用 SecureRandom(rails'has_secure_token)生成的,因此某些文件不太可能被覆盖。完全确定 - 检查active_storage_blobs 中的重复键,为此我会将该表从生产中转储并在开发时以不同的表名导入它,然后joined 两个表,如果一切正常 - 那里'将是空的路口。
下一步是清理(实际上,如果开发中没有那么多数据 - 忘记它可能更便宜)。为此,您必须编写一个脚本,列出您的存储桶(取决于您的存储服务)并找到这些废弃的文件 - 从文件名中您可以重建 blob 的密钥,然后检查该密钥是否属于生产。
请务必仔细检查该列表 - 可能存在误报 - 刚刚上传但尚未写入数据库的文件。
【讨论】: