# Cloudflare R2中的上传未添加到备份：无法下载\*\*\*\*\*\*\*，因 Aws::S3::Errors::Http501Error

**URL:** <https://meta.discourse.org/t/uploads-in-cloudflare-r2-are-not-added-to-the-backup-failed-to-download-because-aws-http501error/311605>\
**Category:** Self-hosting\
**Tags:** backups, s3, cloudflare\
**Created:** [2024年六月11日 16:19 UTC](https://meta.discourse.org/t/uploads-in-cloudflare-r2-are-not-added-to-the-backup-failed-to-download-because-aws-http501error/311605 "2024-06-11T16:19:09Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![kuaza](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuaza/32/264151_2.png) [@kuaza](https://meta.discourse.org/u/kuaza)\
**Post date:** [2024年六月11日 16:19 UTC](https://meta.discourse.org/t/uploads-in-cloudflare-r2-are-not-added-to-the-backup-failed-to-download-because-aws-http501error/311605/1 "2024-06-11T16:19:09Z")

</div>

我正在尝试一些 Cloudflare 的功能，并考虑将来弃用 R2。因此，在检查备份时，我发现安装未包含在内，并且出现了错误。手动进行备份时，事务日志中会出现相同的错误。本地的图片和文件已备份，但 Cloudflare R2 中的图片未备份。

示例错误代码：

```plaintext
Failed to download original/1X/4b8754c367e54bc5271454a09b8bd4c1a8b882d5.png because Aws::S3::Errors::Http501Error
/var/www/discourse/lib/s3_helper.rb:280:in `rescue in download_file'
/var/www/discourse/lib/s3_helper.rb:277:in `download_file'
/var/www/discourse/lib/file_store/s3_store.rb:338:in `download_file'
/var/www/discourse/lib/backup_restore/backuper.rb:321:in `block in add_remote_uploads_to_archive'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:71:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:71:in `block in find_each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:138:in `block in find_in_batches'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:245:in `block in in_batches'
/internal:kernel:187:in `loop'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:229:in `in_batches'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:137:in `find_in_batches'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:70:in `find_each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/querying.rb:22:in `find_each'
/var/www/discourse/lib/backup_restore/backuper.rb:315:in `add_remote_uploads_to_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:248:in `create_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:40: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>'

```

我的配置如下：

> [@Cloudflare R2: Navigating Setup and Handling Configuration Errors](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617):
>
> Is there still no development on cloudflare R2? It looked good to me…

谢谢。

---

<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:** [2024年六月11日 16:43 UTC](https://meta.discourse.org/t/uploads-in-cloudflare-r2-are-not-added-to-the-backup-failed-to-download-because-aws-http501error/311605/2 "2024-06-11T16:43:00Z")

</div>

> [@kuaza](#):
>
> Cloudflare R2 中的图片没有备份。

这是符合预期的，而且 S3/R2 的主要作用就是你不需要备份这些东西。但有一个隐藏设置可以将所有图片从 S3 下载并放入备份中。

哦，但你确实有 `DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true`。

所以也许 R2 的工作方式并非最初建议的那样。我以为我测试过并且奏效了，但我没有尝试将图片下载到备份中，而且我可能也没有尝试进行恢复或下载备份文件。

这可能应该放在那个其他主题中，因为它似乎与那里提出的“也许它有效”的假设相矛盾。

---

<div class="post-metadata">

**Author:** ![kuaza](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuaza/32/264151_2.png) [@kuaza](https://meta.discourse.org/u/kuaza)\
**Post date:** [2024年六月11日 18:47 UTC](https://meta.discourse.org/t/uploads-in-cloudflare-r2-are-not-added-to-the-backup-failed-to-download-because-aws-http501error/311605/3 "2024-06-11T18:47:29Z")

</div>

> [@pfaffman](#):
>
> DISCOURSE\_INCLUDE\_S3\_UPLOADS\_IN\_BACKUPS: true

此设置已激活，但不幸的是，在备份时它不会从 R2 导入图片。您可以在手动备份的日志中看到这一点。

我犹豫不决，正在考虑放弃 CDN 并使用本地存储。事实上，如果意见发生变化，这应该会发生。

感谢您花时间回复。

---

<div class="post-metadata">

**Author:** ![kuaza](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuaza/32/264151_2.png) [@kuaza](https://meta.discourse.org/u/kuaza)\
**Post date:** [2024年七月8日 19:18 UTC](https://meta.discourse.org/t/uploads-in-cloudflare-r2-are-not-added-to-the-backup-failed-to-download-because-aws-http501error/311605/4 "2024-07-08T19:18:53Z")

</div>

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

我将再次提出这个问题，但每次自动备份都会充满错误代码。如果不进行备份，我认为最好不要请求 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:** [2024年七月9日 01:42 UTC](https://meta.discourse.org/t/uploads-in-cloudflare-r2-are-not-added-to-the-backup-failed-to-download-because-aws-http501error/311605/5 "2024-07-09T01:42:04Z")

</div>

我的猜测是，它不会让你下载它们，因为它试图保护你免受他人窃取你所有图像的侵害。听起来是 R2 与 discourse 不兼容的另一种方式。

---

<div class="post-metadata">

**Author:** ![kuaza](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuaza/32/264151_2.png) [@kuaza](https://meta.discourse.org/u/kuaza)\
**Post date:** [2024年七月9日 19:19 UTC](https://meta.discourse.org/t/uploads-in-cloudflare-r2-are-not-added-to-the-backup-failed-to-download-because-aws-http501error/311605/6 "2024-07-09T19:19:47Z")

</div>

我在 R2 上已经很久了。一切看起来都很好，只是有一些小问题（如上所述），但都可以修复。随着时间的推移，社区将致力于解决这个问题，在此之前，祝你好运 🙂

---

<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:** [2024年七月9日 19:22 UTC](https://meta.discourse.org/t/uploads-in-cloudflare-r2-are-not-added-to-the-backup-failed-to-download-because-aws-http501error/311605/7 "2024-07-09T19:22:44Z")

</div>

这很有趣！我只见过你抱怨东西没用。我的快速测试看起来像是奏效了，但我没有进行广泛测试。

我最好的猜测是某种速率限制导致了下载备份，不过我以为会有错误？

---

<div class="post-metadata">

**Author:** ![kuaza](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuaza/32/264151_2.png) [@kuaza](https://meta.discourse.org/u/kuaza)\
**Post date:** [2024年七月9日 19:30 UTC](https://meta.discourse.org/t/uploads-in-cloudflare-r2-are-not-added-to-the-backup-failed-to-download-because-aws-http501error/311605/8 "2024-07-09T19:30:38Z")

</div>

在您的测试之后，我们运行了 R2，我遇到的 R2 问题如下：  
当我关闭 S3 时，连接变成了奇怪的 R2 连接（我在 Docker 中看到的那种）。当我尝试修复并重新烘烤时，网站上的图片会飞走并失真。在几次尝试后进行纠正后，我只将 R2 设置为上传和使用。所以，我还没有找到摆脱它的方法（或者说我没能找到）。  
另一个问题是备份时会产生错误消息。考虑到有 10,000 张图片，这会白白填满错误日志。这有时会导致我们错过重要的问题。（如果不显示错误消息可能会更好，但应该注意的是 S3 中的数据将不会添加到备份中）

我不记得除了这些之外还有其他问题。如果我想备份 R2 上的文件，我可以通过 winscp 连接并将它们下载到我的电脑。如果有人需要，我们在此处留下记录 🙂

---

<div class="post-metadata">

**Author:** ![kuaza](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuaza/32/264151_2.png) [@kuaza](https://meta.discourse.org/u/kuaza)\
**Post date:** [2024年七月10日 11:56 UTC](https://meta.discourse.org/t/uploads-in-cloudflare-r2-are-not-added-to-the-backup-failed-to-download-because-aws-http501error/311605/9 "2024-07-10T11:56:15Z")

</div>

我刚才想到，使用 S3 的用户可以关闭此设置“上传时备份”，这样我们就可以摆脱错误消息。我怎么之前没想到呢…… 🤣🤣

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)\
**Post date:** [2024年八月9日 11:57 UTC](https://meta.discourse.org/t/uploads-in-cloudflare-r2-are-not-added-to-the-backup-failed-to-download-because-aws-http501error/311605/10 "2024-08-09T11:57:14Z")

</div>

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