# 头像迁移到 S3 兼容的 R2 后加载时间过长

**URL:** https://meta.discourse.org/t/avatars-take-a-long-time-to-load-after-moving-to-s3-compatible-r2/405827
**Category:** Self-hosting
**Tags:** s3
**Created:** [2026年六月22日 14:49 UTC](https://meta.discourse.org/t/avatars-take-a-long-time-to-load-after-moving-to-s3-compatible-r2/405827 "2026-06-22T14:49:05Z")
**Posts on this page:** 1
**Showing post:** 8

<div class="post-metadata">

### Author: ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)
#### Post date: [2026年六月23日 17:18 UTC](https://meta.discourse.org/t/avatars-take-a-long-time-to-load-after-moving-to-s3-compatible-r2/405827/8 "2026-06-23T17:18:30Z")

</div>

> [@David\_Ghost](#):
>
> /var/www/discourse/tmp/avatar\_proxy/3689d91eb5e1013beef831c585b5e62edeeecbd6.jpeg (0.2 毫秒)

哇，好的。这很可能就是关键线索，指向了另一个问题。

日志中出现 `avatar_proxy` 通常意味着 Discourse 拒绝直接从 Cloudflare R2 CDN 提供头像。相反，Discourse 会积极拦截请求，将图片从 R2 下载到本地服务器的 `/tmp` 文件夹，然后使用 Ruby 将图片提供给浏览器。因此，我认为这完全绕过了 CDN，也解释了 3 秒的延迟——我怀疑服务器是在每次请求时都手动获取并加载文件：grimacing:

Discourse 仅在少数非常特定的场景下使用 `avatar_proxy`，通常是因为隐私或安全设置强制服务器屏蔽外部 URL。

请在“管理”\>“站点设置”中检查以下设置：

找到 `external system avatars url`（外部系统头像 URL）——如果该框中有任何内容（例如 `/letter_avatar_proxy/v4/...`），请将其清空。这应该能阻止 Discourse 代理默认的字母头像。同时也值得检查 `uploaded avatars allowed groups`（允许上传头像的组），确保其设置为 `TL_0`。

另外，请再次检查 `DISCOURSE_S3_CDN_URL`，确保其正确无误，没有尾随斜杠或拼写错误？

重新映射自定义头像：  
看起来您的数据库中仍然包含原始的 R2 存储桶 URL，而不是新的 CDN URL；由于它们不匹配，您的论坛可能出于安全原因正在代理它们。

在 Rails 控制台中检查，看看 Discourse 到底在应对什么：

```plaintext
./launcher enter app

```

```plaintext
rails c

```

选择一个头像加载缓慢的用户名

```plaintext
u = User.find_by_username("the_selected_username")
u.user_avatar.custom_upload.url

```

如果输出返回的是原始存储桶 URL，说明您之前的重新映射没有覆盖所有内容（也许遗漏了子域名或协议）。

要修复此问题，请 SSH 登录到您的服务器，再次进入容器（不是 Rails）（`./launcher enter app`），然后运行重新映射工具（再次运行，哈哈）以将原始 URL 替换为您的 CDN URL：

```plaintext
discourse remap "https://<your-raw-cloudflare-url>.r2.cloudflarestorage.com" "https://cdn.your-domain.com"

```

然后，以防万一，使用 `//` 代替 `https://` 再运行一次。

顺便问一下，出于好奇，您使用的是哪家主机服务？我有和您类似的通用设置，但尚未遇到此问题。所以我也很感兴趣您的配置，并想尝试复现一下这个问题。

---

_[View the full topic](https://meta.discourse.org/t/avatars-take-a-long-time-to-load-after-moving-to-s3-compatible-r2/405827)._
