恢复备份后徽标上传无法正常工作

我在另一个域名上创建了一个新的 Discourse 实例,并从备份中恢复了数据。整个过程很顺利。但是,所有标志都没有显示出来(全部为空白,而非默认标志)。因此,我尝试通过“品牌”菜单重新上传标志。

以下是上传新标志时的 Discourse 日志:

:/uploads/default/original/1X/75a192f211147f512bdddabaf50addd43c6a9d86.png
:/images/discourse-logo-sketch.png

但是,当我检查 uploads 目录时,该特定图片并不存在:

/var/discourse# tree shared/standalone/uploads/default/ | grep 75a1

请注意,这个错误的标志文件名(哈希?)与仍然在线的原始 Discourse 实例中的文件名一致:

:/uploads/default/original/1X/75a192f211147f512bdddabaf50addd43c6a9d86.png

请问这里出了什么问题?我是否应该创建一个新实例,并从全新的备份中恢复?

谢谢。

1 个赞

我们需要了解更多关于您环境的信息,才能在此提供帮助。

  • 新实例是如何安装的?
  • 它是否位于反向代理或 CloudFlare 之后?
1 个赞

你好,Stephen,

  1. 它是通过独立的 discourse-setup 脚本安装的。
  2. 没有涉及反向代理或 CDN。
1 个赞

关于此事的更新。我今天创建了一个新实例,标志从备份中成功恢复。这可能只是某种间歇性问题。

1 个赞

算了,我又遇到同样的问题了……所以,在清除浏览器缓存之前,Logo 图片一切正常。

解决方案

根本原因是:在恢复操作期间,大多数图片未能从备份中正确还原。我通过手动解压 tarball 并将缺失的图片复制到 Discourse 的 uploads 目录中解决了该问题。

分析

当我尝试上传新 Logo 时,看到以下情况:

  1. 图片上传似乎正常:

  1. 但随后获取已上传图片的 GET 请求返回了 404 错误:

  1. 图片并不存在于 uploads 目录中:
/var/discourse# tree shared/standalone/uploads/default/original/
shared/standalone/uploads/default/original/
`-- 1X
    |-- 52b3aff4e63a7e38bef42d469bafd1ed7c1cc1a2.png
    `-- e952cfd4c1bc58e77024e4c2b518531356319780.png

以下是备份 tarball 中包含的内容:

/tmp# tar tvzf ask-tunisians-2020-07-28-042934-v20200728004302.tar.gz 
-rw-r--r-- discourse/www-data 11767008 2020-07-28 04:29 dump.sql.gz
drwxr-xr-x discourse/www-data        0 2020-07-26 21:11 var/www/discourse/public/uploads/default/
drwxr-xr-x discourse/www-data        0 2020-07-26 21:11 var/www/discourse/public/uploads/default/original/
drwxr-xr-x discourse/www-data        0 2020-07-27 20:33 var/www/discourse/public/uploads/default/original/1X/
-rw-r--r-- discourse/www-data    14843 2020-07-26 21:56 var/www/discourse/public/uploads/default/original/1X/7835873085d7323b640c2504cd737b51f370360f.png
-rw-r--r-- discourse/www-data     9039 2020-07-27 20:33 var/www/discourse/public/uploads/default/original/1X/75a192f211147f512bdddabaf50addd43c6a9d86.png
-rw-r--r-- discourse/www-data     5783 2020-07-26 21:56 var/www/discourse/public/uploads/default/original/1X/19629775936660ecc73235158b4d68b9ec4b2abe.png
-rw-r--r-- discourse/www-data    11124 2020-07-26 21:11 var/www/discourse/public/uploads/default/original/1X/e952cfd4c1bc58e77024e4c2b518531356319780.png
-rw-r--r-- discourse/www-data    35570 2020-07-26 21:11 var/www/discourse/public/uploads/default/original/1X/52b3aff4e63a7e38bef42d469bafd1ed7c1cc1a2.png
-rw-r--r-- discourse/www-data     2375 2020-07-26 21:56 var/www/discourse/public/uploads/default/original/1X/d4af3550a7c3f857c974b996257c8e3db72e7850.png
-rw-r--r-- discourse/www-data     9759 2020-07-26 22:14 var/www/discourse/public/uploads/default/original/1X/dfc47da4c22ffeddf59f736a46a2c50ee55d7fa1.png
-rw-r--r-- discourse/www-data    24898 2020-07-26 21:46 var/www/discourse/public/uploads/default/original/1X/d832b24f2cb338139984be98045d22e0af093c4a.png

显然,这些图片确实存在于备份中,但问题是:为什么在恢复操作中,大多数图片未能被正确复制?

1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.