S3 端点变更流程?

你好,

似乎一直无法解决这个问题。所有帖子中仍然保留着旧的端点。

步骤:

  1. 在管理设置中更改“S3 端点”
  2. 重新生成所有帖子(执行 rake posts:rebake
  3. 清除 Redis 缓存

确认上述操作无效后:
4) 执行 rake posts:remap['旧端点(不含 http)', '新端点(不含 http)']
5) 重新生成所有帖子
6) 重启容器
7) 重启整个服务器

仍无效后:
8) 编辑数据库,在“posts”表的“raw”和“image_url”列中,将所有旧端点替换为新端点
9) 重新生成所有帖子

完成以上所有操作后,不仅旧帖子仍保留旧端点,包含新附件的新帖子也显示旧端点。“short-url”链接也指向旧端点。

正确的步骤应该是什么?

#bringBackMinio

抱歉,有人知道怎么做吗?应该很简单,但我就是想不出来。

这里有什么建议吗 @falco

@plague69 你能分享一下更多关于你的配置细节吗?

旧的 S3 端点和新的 S3 端点值分别是什么?

你是否为 S3 使用了 CDN?

我原以为这没关系?因为如果它变了且出错,我可以修复,但我很难让它生效。

旧端点:
http://discourse.domain.tld:9000

新端点:(仅端口变更,因冲突且其他服务无法迁移)
http://discourse.domain.tld:9001

CDN 未变:
http://files.domain.tld:80

如有需要,我可以移除 CDN,目前暂无此必要。

谢谢 @Falco

我从未在非标准端口上使用过 S3 服务器,因为这不是我们测试的范围。

不过,你能否尝试在 app.yml 文件中通过环境变量设置 S3 端点?

env:
   # 当前设置 ...
   DISCOURSE_S3_ENDPOINT:  http://discourse.domain.tld:9001

恐怕那不起作用。仍然卡在 9000。

添加该环境变量后,必须重新构建容器才能生效,而不仅仅是重启。该选项已从设置中移除,因此我知道它已生效,并且该变量在重新构建后确实存在于容器的启动参数中。

如果我们停止使用 S3,有什么方法可以将所有内容下载到本地驱动器吗?由于备份不包含 S3,我甚至无法进行备份和恢复。

posts:rebake 会重新生成短链接吗?

我相信有一个从 S3 到本地的 rake 任务。你可以在这里搜索,或者查看源代码。这可能是你最好的选择。

以前有:rake uploads:migrate_from_s3。这是在他们更改 S3 URL 格式(从子域名风格改为斜杠风格)时,用于从 Minio 迁移到 S3 的脚本。

现在我甚至看不到它了。