所以我检查了 BunnyCDN。我可以确认备份没有经过 CDN,流量显示为 0 KB。主机 CDN 的 URL 与上传用的 URL 不同,看来 Discourse 并没有使用它。不过,我可以确认备份确实是从 Discourse 上传到了 Backblaze B2。
啊,太好了,谢谢你核实。这证实了我的猜测。也许 @Bill 应该更新一下 OP 指南?
好的!不确定该如何表述。我是否只需说明:您只需要一个拉取区域,且 CDN 无法访问私有存储桶?
我会删除从“在您的 BunnyCDN 仪表板上,您应该创建第二个拉取区域”开始,直到以“我用于上传存储桶的标准层级 10 美元/TB
看起来我不再拥有编辑原始帖子的 Discourse 权限了,可能是因为权限在设定时间后过期,或者我编辑次数过多。我无法进入编辑区域。
啊,好的。我想你需要问问版主。不管怎样,尽管出现了故障,我还是要感谢你的操作指南!
第一篇帖子现在是一个 wiki(我查看时是,不确定是否有人在此之前已经处理过),因此任何 TL1 或更高级别的用户都可以编辑它。
嘿,我只是想进来告诉你,Bunny 也与 Backblaze 达成了合作!因此,从 Backblaze 迁移到 Bunny 现在完全免费了,所以,除了更高的安全性之外,你还可以直接将数据迁移到 Bunny,而无需经过 Cloudflare!
这个步骤是不是有点多余?我想更好的问题可能是……如果您已经设置了 Backblaze 用于存储,并将 Bunny 用作 CDN,那么采取这一额外步骤的好处有多大?任何见解对我来说都将非常有帮助。![]()
我需要一些帮助。过去两天我一直在钻研(请原谅这个兔子双关语),试图将备份和图像上传到 Backblaze。
我使用了这个论坛帖子和其他帖子来尝试设置。现在我不断收到备份的错误消息(尽管我还没有设法让上传工作,但首先是备份)。
我已经设置了 Backblaze 中的存储桶、密钥和拉取区域。
这些是 S3 的“所有站点设置”中的设置
这些是“备份设置”中的设置
这是我的 app.yml - 第二个被注释掉的部分,我昨天在玩它,但它导致 Discourse 卡在加载屏幕上。
当我运行备份时,我得到这个屏幕,我猜是因为我没有让上传部分工作。这可能无关紧要,但我想我应该加上它。
这是备份的错误日志
这是错误日志
我还应该提到我运行了 Rake 任务
rake uploads:migrate_to_s3
rake posts:rebake
我花了两天时间试图让它工作,我的大脑都在打转。有人能帮我弄清楚我哪里出错了?我希望我已经包含了排除故障所需的一切。![]()
如果您的 yml 文件中有这些设置,它们将不会显示在系统设置中。
我将遵循 为上传配置 S3 兼容对象存储提供商
您好,感谢您的回复。我昨天确实尝试了那个链接,但它无法工作,导致网站加载停止。
我目前能达到的最大范围是我现在的设置。不过,它似乎在抱怨区域无效,我不确定需要更改哪个设置。
那是因为你错过了顶部将资产上传到 s3 的部分
我添加了 hooks 代码,并再次使用了您提供的链接中的配置。它又卡住了。
我再次注释掉了该配置,并恢复了之前的配置。我注意到我设置的 s3 区域是完整的 URL,所以我将其更改为“us-west-002”。
现在当我运行备份时,它会失败并出现不同的错误 - EXCEPTION: Unsupported header ‘x-amz-checksum-crc32’ received for this API call。
我想我可能会放弃,每天手动下载备份。
我一直坚持尝试让它奏效,甚至冒着失去理智的风险 ![]()
所以,我通过这个解决了最后一个校验和错误 - Can't rebuild due to AWS SDK gem bump and new AWS Data Integrity Protections - #28 by PatPatterson
这是通过在 app.yml 的 env 部分添加以下内容来实现的
AWS_REQUEST_CHECKSUM_CALCULATION: WHEN_REQUIRED
AWS_RESPONSE_CHECKSUM_VALIDATION: WHEN_REQUIRED
并在 app.yml 的 hooks 部分注释掉这个
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
# - sudo -E -u discourse bundle exec rake s3:expire_missing_assets
其他的 env 设置如下
DISCOURSE_S3_ACCESS_KEY_ID: 'key'
DISCOURSE_S3_SECRET_ACCESS_KEY: ‘key’
DISCOURSE_BACKUP_LOCATION: 's3'
DISCOURSE_ENABLE_S3_UPLOADS: true
DISCOURSE_S3_BACKUP_BUCKET: 'backupbucketonbackblaze’
DISCOURSE_S3_REGION: 'us-west-002'
DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true
在我包含 DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true 之前,我运行了一个备份
并且成功备份到了 Backblaze。太棒了!!!
当我将 app.yml 中的行添加到包含上传时,备份出现了一个错误,如下所示
EXCEPTION: tar --append --file /var/www/discourse/public/backups/default/my-server-name-2025-04-17-222758-v20250417043438.tar uploads/default
Failed to append uploads to archive.
tar: uploads/default: No such file or directory
tar: Exiting with failure status due to previous errors
我不确定这个目录应该在哪里,或者如何修复它。是我需要在 discourse 服务器或 Backblaze 上创建的目录吗?还是我在站点设置或 app.yml 中遗漏了某个设置?
任何指导都将不胜感激。




