# 同步本地备份到 DigitalOcean Spaces 的 Cron 任务

**URL:** https://meta.discourse.org/t/cron-task-to-sync-local-backups-to-digitalocean-spaces/214998
**Category:** Support
**Created:** [2022年一月16日 07:15 UTC](https://meta.discourse.org/t/cron-task-to-sync-local-backups-to-digitalocean-spaces/214998 "2022-01-16T07:15:22Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![varun21](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/varun21/32/246440_2.png) [@varun21](https://meta.discourse.org/u/varun21)
#### Post date: [2022年一月16日 07:15 UTC](https://meta.discourse.org/t/cron-task-to-sync-local-backups-to-digitalocean-spaces/214998/1 "2022-01-16T07:15:22Z")

</div>

我似乎无法让备份正常工作到 DigitalOcean Spaces。但是，服务器使用相同的凭据通过 s3fs 挂载了存储桶。我只需要将备份存储在 Spaces 中，而不需要上传等。日志显示 `EXCEPTION: Aws::S3::Errors::Forbidden`。生产日志显示 `Failed to list backups from S3: Aws::S3::Errors::SignatureDoesNotMatch`。

有没有办法通过 bash 脚本将本地备份 cron 到存储桶？谢谢。

---

<div class="post-metadata">

### Author: ![varun21](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/varun21/32/246440_2.png) [@varun21](https://meta.discourse.org/u/varun21)
#### Post date: [2022年一月16日 07:40 UTC](https://meta.discourse.org/t/cron-task-to-sync-local-backups-to-digitalocean-spaces/214998/2 "2022-01-16T07:40:03Z")

</div>

对于其他遇到此问题并希望继续进行的用户，可以在 bash 终端中运行以下命令。 **用户需要属于 _docker_ 组**  
`docker cp app:\"/var/www/discourse/public/backups/default\" /whatever-host-path/`

---

<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: [2022年一月16日 13:41 UTC](https://meta.discourse.org/t/cron-task-to-sync-local-backups-to-digitalocean-spaces/214998/3 "2022-01-16T13:41:13Z")

</div>

您是指 discourse 备份吗？如果是，为什么这在 WordPress 中？

如果您希望它们转到 spaces，为什么不配置 S3 备份？

---

<div class="post-metadata">

### Author: ![varun21](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/varun21/32/246440_2.png) [@varun21](https://meta.discourse.org/u/varun21)
#### Post date: [2022年一月17日 05:04 UTC](https://meta.discourse.org/t/cron-task-to-sync-local-backups-to-digitalocean-spaces/214998/4 "2022-01-17T05:04:57Z")

</div>

主站点是 WordPress。Discourse 在子目录中。  
主站点：[main.com](http://main.com)  
Discourse：[main.com/forums](http://main.com/forums)  
但是为 DigitalOcean Spaces 配置 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: [2022年一月17日 15:41 UTC](https://meta.discourse.org/t/cron-task-to-sync-local-backups-to-digitalocean-spaces/214998/5 "2022-01-17T15:41:17Z")

</div>

上面提到了 s3fs。你不需要它。上面的错误来自 s3fs，这是 Discourse 不支持的。你应该参考 [Setting up file and image uploads to S3](https://meta.discourse.org/t/setting-up-file-and-image-uploads-to-s3/7229) 或 [Using Object Storage for Uploads (S3 & Clones)](https://meta.discourse.org/t/using-object-storage-for-uploads-s3-clones/148916) 的设置方法，但只需配置备份存储桶。

---

<div class="post-metadata">

### Author: ![varun21](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/varun21/32/246440_2.png) [@varun21](https://meta.discourse.org/u/varun21)
#### Post date: [2022年一月17日 15:49 UTC](https://meta.discourse.org/t/cron-task-to-sync-local-backups-to-digitalocean-spaces/214998/6 "2022-01-17T15:49:29Z")

</div>

为了更明确地说，“主机”挂载了 DigitalOcean Spaces 存储桶， **而不是** 容器。这两个问题是无关的。如果 Discourse 配置为使用 S3，备份会抛出错误。如果我手动将本地备份复制到主机，然后将其移动到 DigitalOcean Spaces，备份就能正常工作。

---

<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: [2022年一月17日 15:59 UTC](https://meta.discourse.org/t/cron-task-to-sync-local-backups-to-digitalocean-spaces/214998/7 "2022-01-17T15:59:44Z")

</div>

如果 `Forbidden` 日志来自 Discourse 而不是 s3fs，并且尝试保存到 Spaces 存储桶，那么问题可能出在凭据错误或存储桶名称错误。

啊！

```plaintext
       Failed to list backups from S3:

```

啊。我认为这就是问题所在。它正在尝试获取存储桶列表但失败了。我不太确定如何解决，但这确实是您需要解决的问题，因此您可以编辑主题。如果您想修复 S3 备份，可以在这里获得帮助；如果您想配置 `s3fs`，则可能需要到别处寻求帮助。

在您的 `app.yml` 中尝试此环境变量

```plaintext
      FORCE_S3_UPLOADS: 1

```

您的端点是否正确？请查看 [将对象存储用于上传（S3 和克隆）](https://meta.discourse.org/t/using-object-storage-for-uploads-s3-clones/148916) 中的 Digital Ocean 部分。

---

<div class="post-metadata">

### Author: ![varun21](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/varun21/32/246440_2.png) [@varun21](https://meta.discourse.org/u/varun21)
#### Post date: [2022年一月18日 03:20 UTC](https://meta.discourse.org/t/cron-task-to-sync-local-backups-to-digitalocean-spaces/214998/8 "2022-01-18T03:20:15Z")

</div>

终于，这适用于 DigitalOcean Spaces：a) 将备份上传到对象存储 b) 不将文件上传上传到对象存储。请将此标记为已解决。谢谢大家！

 ![image](https://global.discourse-cdn.com/meta/original/3X/2/3/235af3ef30b3292df2ea03565ecff45c10459c79.png)

 ![image](https://global.discourse-cdn.com/meta/original/3X/e/a/ea3ee14bf4ef9e2eadc9fb0d6f8bf075c9919e5a.png)

---

<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: [2022年二月17日 03:20 UTC](https://meta.discourse.org/t/cron-task-to-sync-local-backups-to-digitalocean-spaces/214998/9 "2022-02-17T03:20:35Z")

</div>

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