将 discourse 上传移至服务器上的免费空间

大家好,我在 DigitalOcean Droplet 上部署了一个 Discourse 论坛。磁盘大小为 160 GB(目前剩余 45 GB)。我的站点上传文件占用了大量空间(40 GB)。迁移上传文件的最佳方案是什么?有什么建议吗?S3、DigitalOcean Spaces,还是其他选项?谢谢。

1 个赞

@Saiano

在我看来,这只是个人偏好。

你上次运行 ./launcher cleanup 是什么时候?这应该能为你清理一些空间。

2 个赞

请查看 使用对象存储进行上传(S3 及克隆)。如果您知道如何配置 AWS,它是支持最完善且最可靠的方案。Spaces 曾出现过几次技术故障,但也许他们现在已经解决了。

我上周将某人迁移到了 Spaces 和 bunny.net,过程非常顺利。

4 个赞

我设置了一个用于上传和备份的 S3 存储桶,运行正常。我尚未创建 CDN。这可能会有问题吗?有什么建议吗?我是否应该通过 rake 任务将旧上传文件迁移到 S3?

1 个赞

我在 AWS 上配置了 CloudFront,看起来运行正常。
我会在接下来的几天里进行检查。

最后需要完成的事项:

停止 Discourse 论坛 - 在 DO 上创建快照

编辑 yml 文件
重新构建并测试
然后

./launcher enter app
rake uploads:migrate_to_s3
rake posts:rebake

上传 37 GB 数据并重新生成所有帖子需要多长时间?

1 个赞

所需时间取决于许多因素。S3 很可能会以您服务器能提供的速度接收上传(扣除一些开销)。在 1Gbit 链路上,这大概需要约 5 分钟。

重新烘焙及后续任务可能会消耗绝大部分时间。具体耗时差异很大,取决于您的实例有多少帖子、帖子通常包含多少内容以及内容类型,还有服务器 CPU 的主频。后续任务的耗时也部分取决于上述因素,以及可用的 CPU 核心数量。

据我了解(如有错误请指正),迁移到 S3 和重新烘焙的过程是:现有上传文件在从帖子中解关联(即重新烘焙完成该帖子)之前不会被删除,因此在迁移和重新烘焙期间,实例仍可正常使用,不会出现缺失上传文件的情况。

如果您使用的是仅有一个核心的虚拟服务器,可以考虑在重新烘焙期间升级到更多核心,完成后降级。在单核上该过程会显著变慢,且在此期间 Discourse 的性能可能会受到严重影响。

3 个赞

probably I’ll turn the board in read only mode while uploading data to S3.