@RGJ 我完全没有改动那部分;重新创建 Upload 是 @zogstrip 在 Cannot execute the rake uploads:migrate_from_s3 - #11 中修复的一个 bug。
我只是试图让已有的代码正常运行,而对 Discourse 的内部机制并不熟悉,一直在黑暗中摸索。我唯一的 Ruby 经验就是为 Discourse 提交过几个 PR。遵循现有代码的模式似乎确实不是最高效的途径(参见我之前与 @pfaffman 关于短路处理的对话),我完全同意。从我今天早些时候甚至没有意识到 OptimizedImages.url 也需要修改为 /uploads 路径,并且 etag 需要设置为 nil(可能还有其他地方)这一点就能看出,我仍在盲人摸象。
至少还需要先遍历帖子,以修复帖子中旧的字面 URL。还需要进行其他一些修复,例如不再重新验证帖子,以及不再静默吞掉错误。我认为仍然需要实施速率限制,以减轻对在线站点的影响。
关于你前两个涉及非帖子更新的问题,这是我正在进行的 工作(尚未在在线站点上测试)(提交记录),或许能有所帮助,但在我完成所有帖子上传迁移之前,我不会在我的在线站点上测试它。
调整一些原本就能正常工作的东西,是我当时唯一有精力去做的事。如果你想要更快的迁移方案,我完全支持;也许将我这较慢但至少更好的工作作为帕累托改进先合并进去是合理的,然后你可以用更好的方案完全替换它。即使到时候我本人已不再使用它,我也会是第一个为此欢呼的人。