# S3（非 AWS）随机停止工作，据推测是在一次更新后

**URL:** https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582
**Category:** Support
**Tags:** s3
**Created:** [2025年九月14日 10:42 UTC](https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582 "2025-09-14T10:42:24Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![Fma965](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fma965/32/259795_2.png) [@Fma965](https://meta.discourse.org/u/Fma965)
#### Post date: [2025年九月14日 10:42 UTC](https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582/1 "2025-09-14T10:42:24Z")

</div>

我有一个存储桶设置，但它似乎正在尝试使用默认设置？

我使用 GarageHQ 作为轻量级的 MinIO 替代品。

我使用的是 3.6.0.beta1-dev  
（ [ed6beea336](https://github.com/discourse/discourse/commits/ed6beea336f0f75fbfa40a778cd35730573a55bb) ）

[2025-09-14 10:40:34] 正在删除临时文件 ‘/var/www/discourse/tmp/backups/default/2025-09-14-104012’ 目录…  
[2025-09-14 10:40:34] 正在上传存档…  
[2025-09-14 10:40:35] 异常：存储桶未找到：default

```plaintext
[2025-09-14 10:40:35] /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/seahorse/client/plugins/raise_response_errors.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/dualstack.rb:21:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/accelerate.rb:43:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/checksum_algorithm.rb:169:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:16:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/invocation_id.rb:16:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/idempotency_token.rb:19:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/param_converter.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/seahorse/client/plugins/request_callback.rb:89:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/response_paging.rb:12:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/seahorse/client/plugins/response_target.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/telemetry.rb:39:in `block in call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/telemetry/no_op.rb:29:in `in_span'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/telemetry.rb:53:in `span_wrapper'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/telemetry.rb:39:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/seahorse/client/request.rb:72:in `send_request'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/client.rb:3710:in `create_multipart_upload'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/multipart_file_uploader.rb:67:in `initiate_upload'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/multipart_file_uploader.rb:58:in `upload'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/file_uploader.rb:42:in `block in upload'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/user_agent.rb:90:in `metric'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/file_uploader.rb:40:in `upload'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/customizations/object.rb:477:in `block in upload_file'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/user_agent.rb:90:in `metric'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/customizations/object.rb:476:in `upload_file'
/var/www/discourse/lib/backup_restore/s3_backup_store.rb:48:in `upload_file'
/var/www/discourse/lib/backup_restore/backuper.rb:351:in `upload_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:41:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:9:in `backup'
/var/www/discourse/script/spawn_backup_restore.rb:31:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'

```

上次备份是昨天，但现在它不再工作了，其他服务仍然可以备份到我的本地 S3 而没有问题。

有人知道我该如何解决这个问题吗？

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2025年九月14日 15:07 UTC](https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582/2 "2025-09-14T15:07:43Z")

</div>

是的。AWS 破坏了许多其他服务的 S3 库。

[Can't rebuild due to AWS SDK gem bump and new AWS Data Integrity Protections](https://meta.discourse.org/t/cant-rebuild-due-to-aws-sdk-gem-bump-and-new-aws-data-integrity-protections/354217/) 包含一些解决方法。

我创建了这个 `aws-revert-template.yml` 来回滚到旧版本。我不知道它是否还有效；我的文件日期是 2025-08-06T05:00:00Z

> [@Can't rebuild due to AWS SDK gem bump and new AWS Data Integrity Protections](https://meta.discourse.org/t/cant-rebuild-due-to-aws-sdk-gem-bump-and-new-aws-data-integrity-protections/354217/49?u=pfaffman):
>
> But I did for a site that’s using Backblaze. I created a template I put in /root/aws-revert-template.yml with this: # This template reverts aws-sdk-s3 to a version that works with backblaze params: home: /var/www/discourse hooks: after\_bundle\_exec: - exec: cd: $home cmd: - bundle config set frozen false - "sed -i 's/gem \"aws-sdk-s3\", require: false/gem \"aws-sdk-s3\", \"1.177.0\", require: false/' Gemfile" - bundle update aws-sdk-s3 …

---

<div class="post-metadata">

### Author: ![Fma965](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fma965/32/259795_2.png) [@Fma965](https://meta.discourse.org/u/Fma965)
#### Post date: [2025年九月15日 15:42 UTC](https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582/3 "2025-09-15T15:42:30Z")

</div>

嗯，我不太确定这是否是问题所在

 ![image](https://global.discourse-cdn.com/meta/original/4X/f/e/5/fe545725d011e50e94f8e9844f2071b8fd3716bb.png)

除非我弄错了，我已经在 3.6 上运行了超过两天，但我还是在两天前和十天前进行了备份。

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2025年九月15日 15:50 UTC](https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582/4 "2025-09-15T15:50:07Z")

</div>

> [@Fma965](#):
>
> 除非我记错了，我用了 3.6 版本已经超过两天了

没多大区别。我认为你记错了。

这是你正在使用的提交：

> <https://github.com/discourse/discourse/commit/ed6beea336f0f75fbfa40a778cd35730573a55bb>
>
> Allows admins to set the \`calendar\_event\_display\` site setting to decide
> how ful…l-calendar should render events.
> 
> It accepts the following values:
> \- auto
> \- block
> \- list-item
> 
> And will default to: auto

 ![image](https://global.discourse-cdn.com/meta/original/4X/a/8/4/a84b5efff850f31dc5b1785bd9ebe5361b317895.png)

但还有：

> [@Fma965](#):
>
> [2025-09-14 10:40:35] EXCEPTION: Bucket not found: default
> 
> ```plaintext
> 
> ```

你的 bucket 叫 “default” 吗？

---

<div class="post-metadata">

### Author: ![Fma965](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fma965/32/259795_2.png) [@Fma965](https://meta.discourse.org/u/Fma965)
#### Post date: [2025年九月15日 18:41 UTC](https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582/5 "2025-09-15T18:41:21Z")

</div>

是的，我现在就在提交，最初发布此问题时我不在，我已更新以排除错误。

---

<div class="post-metadata">

### Author: ![Fma965](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fma965/32/259795_2.png) [@Fma965](https://meta.discourse.org/u/Fma965)
#### Post date: [2025年九月15日 18:43 UTC](https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582/6 "2025-09-15T18:43:25Z")

</div>

> [@pfaffman](#):
>
> 您的存储桶名为“default”？

不，正如 OP 中所述，这就是为什么我不认为这是您所指的相同问题，我的存储桶已指定，我已在备份部分的 UI 设置和 YAML 中的环境变量中都尝试过，它仍然尝试使用默认值

为澄清起见，自停止工作以来，Discourse 或 Garage 端没有任何变化，除了更新到 3.5 然后到 3.6

---

<div class="post-metadata">

### Author: ![Fma965](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fma965/32/259795_2.png) [@Fma965](https://meta.discourse.org/u/Fma965)
#### Post date: [2025年九月15日 23:35 UTC](https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582/7 "2025-09-15T23:35:43Z")

</div>

也许有人能实际检查一下 S3 是否正确选择了存储桶？其他第三方，如 Backblaze、R2 等也是如此？

---

<div class="post-metadata">

### Author: ![Fma965](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fma965/32/259795_2.png) [@Fma965](https://meta.discourse.org/u/Fma965)
#### Post date: [2025年九月18日 17:08 UTC](https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582/8 "2025-09-18T17:08:12Z")

</div>

所以我创建了一个名为“Default”的存储桶，它的工作符合预期，所以是的，它没有正确地选择我告诉它的存储桶名称。

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2025年九月18日 17:25 UTC](https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582/9 "2025-09-18T17:25:23Z")

</div>

> [@Fma965](#):
>
> 所以这看起来像是 Discourse 的一个 bug。

除非成千上万的人和 CDCK 托管也会受到影响，但他们没有。更有可能的是，你在 `app.yml` 中的某一行删除了字符或添加了字符。

你可以做这样的事情：

```plaintext
grep -i S3 /var/discourse/containers/*

```

```plaintext
docker exec -it app bash -c 'grep s3 /var/www/discourse/config/discourse.conf

```

如果你在设置中配置了 s3 而不是使用环境变量，那么你可以看看 [为上传配置 S3 兼容对象存储提供商](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916) 来了解它们的样子。

---

<div class="post-metadata">

### Author: ![Fma965](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fma965/32/259795_2.png) [@Fma965](https://meta.discourse.org/u/Fma965)
#### Post date: [2025年九月18日 20:43 UTC](https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582/10 "2025-09-18T20:43:41Z")

</div>

我的设置没有任何问题，唯一改变的就是 discourse 更新。我尝试了在 yaml 中配置，也在 UI 中配置，UI 设置明确显示为“cyanlabs-community”，但备份仍然尝试保存到“default”。

 ![Screenshot_2025-09-18-21-47-29-55_3aea4af51f236e4932235fdada7d1643](https://global.discourse-cdn.com/meta/original/4X/5/9/6/596b2f188a13338f20a29df7a233ad682cf09225.jpeg)

尽管 UI 中配置了 S3，但 discourse.conf 文件不包含任何 S3 引用，正如你的第二个命令所示。

 ![Screenshot_2025-09-18-21-57-49-03_3aea4af51f236e4932235fdada7d1643](https://global.discourse-cdn.com/meta/original/4X/2/e/2/2e26c06293b041090857621e79716d4bf4875312.jpeg)

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [2025年九月22日 00:23 UTC](https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582/11 "2025-09-22T00:23:19Z")

</div>

> [@Fma965](#):
>
> 异常：未找到存储桶：default

但这表示存储桶不存在，你能尝试创建一个全新的存储桶和凭据，看看在那里上传是否有效？

---

<div class="post-metadata">

### Author: ![Fma965](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fma965/32/259795_2.png) [@Fma965](https://meta.discourse.org/u/Fma965)
#### Post date: [2025年九月22日 15:06 UTC](https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582/12 "2025-09-22T15:06:56Z")

</div>

但我觉得我在这里兜圈子。

对话开始时，存储桶“default”并不存在，此后我已创建它，并且它使用了该存储桶，尽管在设置中已将存储桶设置为“cyanlabs-community”。

> [@Fma965](#):
>
> 所以我创建了一个名为“default”的存储桶，它的工作方式符合预期，所以是的，它没有正确地选择我告诉它的存储桶名称。
> 
> ![image](https://global.discourse-cdn.com/meta/original/4X/c/9/5/c9529ae69214237aca9db90651a03f077d1360e0.png)
> 
> 所以这似乎是 Discourse 的一个 bug。

“cyanlabs-community”和“default”都存在于 S3 实例中，但无论我尝试什么，Discourse 都不会使用“cyanlabs-community”。

新存储桶 `cyanlabsdiscourse`

 ![image](https://global.discourse-cdn.com/meta/original/4X/c/6/d/c6d317d7490f6c8b819d2a2ceca9232fdab58e64.png)

备份结果

```plaintext
[2025-09-22 15:14:59] Finalizing backup...
[2025-09-22 15:14:59] Finalizing database dump file: cyanlabs-official-community-2025-09-22-151437-v20250916082012.sql.gz
[2025-09-22 15:14:59] Removing tmp '/var/www/discourse/tmp/backups/default/2025-09-22-151437' directory...
[2025-09-22 15:14:59] Uploading archive...
[2025-09-22 15:15:37] Executing the after_create_hook for the backup...
[2025-09-22 15:15:37] Deleting old backups...
[2025-09-22 15:15:37] Cleaning stuff up...
[2025-09-22 15:15:37] Removing archive from local storage...
[2025-09-22 15:15:37] Removing '.tar' leftovers...
[2025-09-22 15:15:37] Marking backup as finished...
[2025-09-22 15:15:37] Refreshing disk stats...
[2025-09-22 15:15:37] Notifying 'CyanLabs' of the end of the backup...
[2025-09-22 15:15:40] Finished!

```

# cyanlabsdiscourse 存储桶

 ![image](https://global.discourse-cdn.com/meta/original/4X/6/7/6/67682048222c97873df0bbc5cf65ea567a3218df.png)

# default 存储桶

 ![image](https://global.discourse-cdn.com/meta/original/4X/e/f/9/ef91880060ba50e7a7aa31f74aea89f6e5b14603.png)

有趣的是，它仍然尝试在 bucketname.s3.domain.tld 上建立连接，例如 cyanlabsdiscourse.s3.domain.tld，因为如果没有添加 DNS 记录，它在该子子域上将无法工作。因此，设置被遵守用于 URL，但似乎被存储桶选择忽略了。

---

<div class="post-metadata">

### Author: ![Fma965](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fma965/32/259795_2.png) [@Fma965](https://meta.discourse.org/u/Fma965)
#### Post date: [2025年九月26日 10:10 UTC](https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582/13 "2025-09-26T10:10:20Z")

</div>

我感觉我已经尝试了一切，暂时我猜我只能使用默认存储桶了。

---

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [2025年十月6日 20:17 UTC](https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582/14 "2025-10-06T20:17:48Z")

</div>

AWS 真是神秘！很抱歉您未能成功使用您偏好的存储桶名称。由于无法复现问题，很难提供帮助，所以我想您只能接受使用默认名称作为存储桶名称了。

---

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [2025年十月6日 20:17 UTC](https://meta.discourse.org/t/s3-not-aws-backups-stopped-working-presumably-since-an-update/382582/15 "2025-10-06T20:17:53Z")

</div>


