我想将文件从 S3 迁移回本地。我正在手动将所有文件从 S3 转移到 uploads 文件夹。那么,只需将上传链接的基础 URL 改回论坛的基础 URL,就足以完成这项工作吗?
为什么你不使用内置的 rake 任务?据我所知,它叫做 uploads:migrate_from_s3
cd /var/discourse
./launcher enter app
rake uploads:migrate_from_s3
然后禁用“启用 S3 上传”站点设置:
最后重新生成:
rake posts:rebake
因为我的 S3 用的是 MinIO,我不确定这个功能是否兼容。
我尝试了这条命令,但执行完成后,上传内容没有任何变化,仍然从 S3 提供服务。顺便提一下,这个 rake 任务让我觉得有点奇怪。它结束得太快了,而我实际上有数千个 S3 上传文件,按理说应该需要一段时间才能完成。
我已经将所有上传手动转移到了本地。有什么方法可以直接修改数据库和帖子中的所有链接吗?我不需要使用这个 rake 任务。
你解决了吗?我也想把所有资产(备份除外)从 S3 迁移回本地。有什么简单的方法吗?
我也在寻找类似的选项。但我在本站某处看到,若要正确实现这一功能,需先解决一些重大问题。因此,目前他们建议不要将 S3 迁移到本地。
不过,我也同样焦急地等待该问题的解决方案。
有一个名为“备份时将 S3 上传文件下载到本地”之类的隐藏站点设置。我想你可以利用该功能将数据恢复到另一台服务器(或者,如果你通过环境变量中的影子站点设置更改配置,也可以恢复到你的服务器)。这正是 cdck 在关闭账户时所采用的方法,而我从未在恢复他们的备份时遇到过任何问题。
我已在 Rails 控制台中执行了该设置:SiteSetting.include_s3_uploads_in_backups = true。但它似乎没有任何效果。备份文件大小仍然相同(约 375 MB,即使我的上传文件约为 700 MB 到 1 GB)。
如果您所说的“被覆盖的站点设置”是指 Disco Web UI 中所有的 S3 站点设置,那么我已经将所有这些设置填写在了相应的字段中。
我也正计划将我的上传文件从 S3 迁移到本地(独立的 VPS)。是否有相关的文档化操作流程?
不太行。你可以试试上面提到的那个设置。
有没有办法找到这些隐藏设置?
在此讨论中您可能需要的那个已在上面提及。您可以在 Discourse 源代码中的 site_settings.yml 文件中查看所有选项。
此 rake 任务在 2.9.0 BETA 8 中不再可用。
有人知道如何从 S3 迁移到本地吗?
您可以启用一个隐藏的站点设置,名为 download_s3_with_backups(不完全是这样,但我现在在手机上找不到它),然后恢复该备份。当您离开 cdck 托管时就会发生这种情况,而且它确实有效。您可能需要恢复到不同的服务器(并且您无论如何都会进行测试)。
编辑:谢谢 @Benjamin_D!它是 include_s3_uploads_in_backups
不。
backup_with_uploads 与 include_s3_uploads_in_backups 不同。前者将本地文件包含在备份中。后者每次进行备份时都会从 s3 下载每一个文件。而 s3 的全部意义在于您不需要备份它。
那么这包括在备份到 S3 时包含本地文件吗?
这会从 S3 存储下载文件以包含在备份中(可以是本地的或 S3 上的)
我正在尝试理解正确的步骤,目标是将所有文件从 S3 迁移到本地,所以如果我理解你的意思:
- 从 rails 控制台启用
backup_with_uploads - 创建一个备份(本地或 S3 上)
- 使用备份进行恢复
- 从 rails 控制台禁用
backup_with_uploads
这是正确的吗?
那么,从 S3 迁移到本地的最佳方法是什么?![]()
- 手动移动文件(优化/原始文件夹)并在禁用 Discourse 的 S3 选项后进行后置烘焙?
- 使用隐藏的
download_s3_with_backups管理员选项,下载并解压这些文件? rake uploads:migrate_from_s3?
