# 无法查看或上传图片

**URL:** <https://meta.discourse.org/t/unable-to-view-or-upload-images/164812>\
**Category:** Support\
**Created:** [2020年九月22日 06:10 UTC](https://meta.discourse.org/t/unable-to-view-or-upload-images/164812 "2020-09-22T06:10:28Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![rishabhlakhotia](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rishabhlakhotia/32/192820_2.png) [@rishabhlakhotia](https://meta.discourse.org/u/rishabhlakhotia)\
**Post date:** [2020年九月22日 06:10 UTC](https://meta.discourse.org/t/unable-to-view-or-upload-images/164812/1 "2020-09-22T06:10:29Z")

</div>

我最近将论坛从一个服务器迁移到了另一个服务器。当前版本为 2.6.0.beta2，其他功能一切正常，但之前上传的图片无法显示，用户也无法上传新图片。此外，用户也无法更新个人资料头像。

我尝试了本论坛中提到的一些方法，但似乎都没有对我生效。需要帮助！

---

<div class="post-metadata">

**Author:** ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)\
**Post date:** [2020年九月22日 06:13 UTC](https://meta.discourse.org/t/unable-to-view-or-upload-images/164812/2 "2020-09-22T06:13:41Z")

</div>

您之前使用的是 S3 还是某种类似的 S3 兼容存储？

是什么促使了这次变更？服务器有何不同，新服务器又是如何构建的？

---

<div class="post-metadata">

**Author:** ![rishabhlakhotia](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rishabhlakhotia/32/192820_2.png) [@rishabhlakhotia](https://meta.discourse.org/u/rishabhlakhotia)\
**Post date:** [2020年九月22日 12:17 UTC](https://meta.discourse.org/t/unable-to-view-or-upload-images/164812/3 "2020-09-22T12:17:07Z")

</div>

我从未在此服务器上使用过 S3，甚至没有用于测试。

我更换服务器是因为想要更改区域。新服务器与旧服务器在所有方面都相同，唯一的区别是区域。我之前使用的是 CloudFront CDN，但在迁移后，我清除了整个缓存。

我可以看到旧图片在新服务器上仍然可用，因为它们包含在备份中，但问题依然存在。

---

<div class="post-metadata">

**Author:** ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)\
**Post date:** [2020年九月22日 13:54 UTC](https://meta.discourse.org/t/unable-to-view-or-upload-images/164812/4 "2020-09-22T13:54:00Z")

</div>

在制作或恢复备份之前，您是否已将旧实例升级到相同级别？

---

<div class="post-metadata">

**Author:** ![rishabhlakhotia](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rishabhlakhotia/32/192820_2.png) [@rishabhlakhotia](https://meta.discourse.org/u/rishabhlakhotia)\
**Post date:** [2020年九月22日 16:20 UTC](https://meta.discourse.org/t/unable-to-view-or-upload-images/164812/5 "2020-09-22T16:20:06Z")

</div>

是的，两台服务器的情况完全一致。我严格按照迁移步骤操作，并查阅了其他用户在迁移过程中遇到的问题。

问题不仅在于我无法查看旧图片，用户也无法上传新图片。我猜测可能是某个图像驱动出了问题（抱歉，这个猜测比较模糊）。

---

<div class="post-metadata">

**Author:** ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)\
**Post date:** [2020年九月22日 16:37 UTC](https://meta.discourse.org/t/unable-to-view-or-upload-images/164812/6 "2020-09-22T16:37:11Z")

</div>

这是使用标准安装吗？

---

<div class="post-metadata">

**Author:** ![rishabhlakhotia](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rishabhlakhotia/32/192820_2.png) [@rishabhlakhotia](https://meta.discourse.org/u/rishabhlakhotia)\
**Post date:** [2020年九月22日 16:49 UTC](https://meta.discourse.org/t/unable-to-view-or-upload-images/164812/7 "2020-09-22T16:49:05Z")

</div>

是的，按照 [discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md) 中提到的步骤操作即可。

---

<div class="post-metadata">

**Author:** ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)\
**Post date:** [2020年九月22日 17:34 UTC](https://meta.discourse.org/t/unable-to-view-or-upload-images/164812/8 "2020-09-22T17:34:48Z")

</div>

好的，总结一下：你之前的服务器使用的是标准安装。你重新安装了一个以相同方式构建的系统，并恢复了备份。

如果你查看网页的源代码，图片 URL 是什么样的？这与 /var/discourse/standalone/web-only/uploads/default 目录中的上传文件相比如何？

如果你尝试直接打开图片链接，会发生什么？

这两个安装都是双容器（two-container）架构吗？

由于目前缺乏清晰的复现步骤，我将此话题从 #Contribute > Bug 重新分类到 #support。一旦我们确定了根本原因，可能需要将其作为 bug 提交，但就目前情况而言并非如此。

---

<div class="post-metadata">

**Author:** ![rishabhlakhotia](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rishabhlakhotia/32/192820_2.png) [@rishabhlakhotia](https://meta.discourse.org/u/rishabhlakhotia)\
**Post date:** [2020年九月22日 18:05 UTC](https://meta.discourse.org/t/unable-to-view-or-upload-images/164812/9 "2020-09-22T18:05:54Z")

</div>

看起来我的论坛图片已上传到 `/var/discourse/shared/standalone/uploads/default/optimized/1X`。这里存储了大量具有多种分辨率的图片，但论坛中显示的图片文件名与目录中的文件名并不一致。

访问 `https://forumcdn.domain.com/uploads/default/optimized/1X/55cfd1bf40edcb3ac19d3e412a5ad63f93c0a854_2_225x250.png` 时返回 404 错误，但将图片文件名替换为目录中实际存在的文件名后，链接即可正常工作。所有图片文件本身完好无损，直接打开即可查看，问题仅在于论坛中显示的文件名与实际文件名不一致。

---

<div class="post-metadata">

**Author:** ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)\
**Post date:** [2020年九月22日 19:19 UTC](https://meta.discourse.org/t/unable-to-view-or-upload-images/164812/10 "2020-09-22T19:19:53Z")

</div>

源实例上是否启用了“在备份中包含缩略图”？

如果未启用：

> 在备份中包含生成的缩略图。禁用此选项会使备份文件更小，但在恢复后需要重新生成所有帖子。

这意味着您需要运行 `rake posts:rebake`。

---

<div class="post-metadata">

**Author:** ![rishabhlakhotia](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rishabhlakhotia/32/192820_2.png) [@rishabhlakhotia](https://meta.discourse.org/u/rishabhlakhotia)\
**Post date:** [2020年九月23日 05:26 UTC](https://meta.discourse.org/t/unable-to-view-or-upload-images/164812/11 "2020-09-23T05:26:51Z")

</div>

`在备份中包含缩略图` 已在源实例上禁用。我刚刚在 Discourse 容器中运行了 `rake posts:rebake`，得到了以下结果：

```plaintext
root@vps-app:/var/www/discourse# rake posts:rebake
Rebaking post markdown for 'default'
      628 / 628 (100.0%)
628 posts done!

```

为了双重确认，我清除了 CDN 缓存，但仍然无法查看任何图片。此外，我也无法上传任何图片，因此我怀疑该方案无法解决此问题。
