对我来说,没有一个方法能100%奏效,真遗憾。你最后是怎么做的?
3.x 版本中有什么方法可以实现此功能吗?我仍然有大量图片存储在 S3 上,需要找到一种方法将它们恢复到本地。欢迎提供建议。(rake uploads:migrate_from_s3 命令已不存在)
我已经将所有设置改为从本地运行(只有备份在 S3 上)。发现许多帖子仍然指向 S3,链接如下:
<img src="//x.amazonaws.com/original/1X/afda2721f64341ca46576020acae7aaee92bd9d3.PNG" width="308" height="206">
指向:
https://xxx.amazonaws.com/original/1X/afda2721f64341ca46576020acae7aaee92bd9d3.PNG
您对此事有什么建议吗?我真的很厌倦每次更新或更改时都遇到问题 ![]()
未解决。如果 Discourse 有解决方案那就太好了。
哦。如果这是您的网站,并且您的文件存储在 S3 上,那么您应该能够启用 S3,启用 Enable hidden setting to include S3 uploads in the backups 中描述的隐藏设置,进行备份,将配置更改为本地图片,然后恢复备份。
很想知道是否有人能够让它正常工作。
它适用于从 Discourse.org 托管迁移到自托管的每个站点(并且在获取备份之前已开启该设置)。
这有点棘手,因为您必须在创建备份时设置好所有 S3 设置(在您的 YML 文件中),然后在执行还原之前将它们全部关闭(在所有地方,包括数据库,如果您曾经在那里设置过它们)。
这是一个非常合乎逻辑的方法,但它不适用于使用 cloudflare R2 的用户。或者这个问题只发生在我身上。当我进行备份时,我也开启了隐藏设置。不幸的是,它不包括 R2 中的文件备份。它在这里出现错误:Uploads in cloudflare R2 are not added to the backup: Failed to download ******* because Aws::S3::Errors::Http501Error
文档和您的经验表明 R2 不受支持,因此您需要以其他方式解决问题。
我以为它对我来说是有效的,但我没有非常仔细地测试过,也没有在简单的冒烟测试之外使用过它。
如果备份无法从 R2 下载文件,那么您将需要使用其他工具从 R2 检索文件,然后将它们推送到您的新存储桶,然后手动更新数据库(我认为您可以使用 remap rake 任务搜索相关主题)。
这是一个复杂的过程,因此您需要对 R2、S3 和 Discourse 的 Uploads 有相当的了解。在论坛上获得解决方案可能很难,因为您需要足够具体地解释您遇到的确切问题。
我手动下载文件并将其上传到服务器。对于那些询问如何操作的人,您可以使用 winscp 程序连接到 S3 帐户。之后,您可以轻松地将文件导入到您的计算机。之后,我将其上传到本地并重新创建了主题,它显示了 0 篇帖子。它没有采取行动。我更改了某次,但什么也没找到。也许我错过了什么,我想在再次测试之前不要说出来,也许是我的错。如果我再试一次,我会写下结果。谢谢。
将文件上传到服务器只是问题(简单)的一部分。
您可以通过以下方式查看上传的文件:
cd /var/discourse
./launcher enter app
rails c
Upload.pluck(:url)
这将显示您上传文件的 URL。然后,您需要修改所有这些上传文件,以便它们具有指向新存储桶的新路径。您可以尝试搜索 remap 命令。我认为它可能会起作用。
我已将其上传到本地并重新创建了主题,
我不确定这是否意味着什么。
将配置更改为本地图片
你能告诉我如何做到这一点吗?你的意思是只将备份中的“包含S3上传”设置改为false,还是其他什么?
为上传配置 S3 兼容对象存储提供商 介绍了如何通过将配置添加到 app.yml 来配置 S3。如果你没有这样做,请在站点设置中取消设置所有与 S3 相关的内容,然后按此方法操作。
如果你已按此方法操作,请注释掉这些设置(或者可能只注释掉 use_s3 和 upload bucket)。