从 BackBlaze B2 迁移到 Digital Ocean Spaces

你好,

目前我对这个情况有些困惑。我们有一个用于上传的 BackBlaze B2 存储桶(包含图片和资源),并与 BunnyCDN 配合使用。由于 B2 Cloud Storage 不支持“墓碑”(tombstone)功能,因此存在大量未使用的图片和脚本。现在,我想将这些上传内容迁移到 Digital Ocean Spaces,同时保持相同的 BunnyCDN 设置,只需将源 URL 更改为 DO 即可。

我们曾使用这篇出色的指南来设置 B2 Cloud Storage,现在希望改用 Digital Ocean 的版本。


进行迁移的最佳实践是什么?我们的上传数据约为 10GB。B2 提供了快照功能,但速度非常慢。控制台命令 rake uploads:migrate_from_s3 会先从 S3 下载所有内容,然后我们需要重新生成帖子,由于涉及大量图片,这个过程也非常缓慢。完成此过程后,再将所有内容上传到 DO Spaces。是这样吗?

如果我们在 B2 Cloud Storage 上创建快照,然后手动下载所有内容到本地电脑,再全部上传到 DO Spaces,会发生什么?完成此过程后,我们将 BunnyCDN 拉取区域的源 URL 修改为 DO Spaces,并更改 app.yml 文件后重新构建。这样是否还需要重新生成帖子?

还有一个问题:DO Spaces 中未使用的文件和图片会怎样?系统能否识别这些文件并自动删除它们?

感谢您的任何帮助 :slight_smile:

我认为最简单的方法是启用隐藏设置,在控制台中将所有 S3 文件下载到备份(您可以在这里搜索或在源代码中查找),切换到 Spaces,恢复备份,然后重新构建容器。

记得关闭下载图片的设置,否则每次备份时都会重新下载并上传您所有的上传内容!

多年来我一直想解决这个问题,但我的测试总是失败,我想是边缘情况导致的。如果这个方法可行,请告诉我。您可以通过恢复到测试站点来测试它。

谢谢!:slightly_smiling_face: 所以这个备份流程也会备份 S3 上的所有内容吗?这会在将文件下载到电脑后、在 B2 Cloud Storage 上生成一个巨大的备份文件,然后在恢复之前修改 app.yml 文件,将 CDN 指向 DO Spaces?这样会将文件恢复到 DO Spaces。

不过,当我创建备份文件时,app.yml 应该包含 DO Spaces 的信息,以便将数据恢复到正确的位置。或者,我可以在备份创建后直接编辑备份包内的 app.yml 文件吗?:slightly_smiling_face:

哦对了,我差点忘了备份文件本身也存储在 B2 Cloud Storage 上,只是另一个存储桶而已。

说得对。你可以改为进行本地备份。

我发现了这个,所以我在想,如果直接进行云到云的迁移,只更换 CDN 和 app.yml 文件,是否可行?如果可行,这或许就是该过程最简单、最快的解决方案。他们也支持 BackBlaze。

我觉得这应该可行,如果 CDN 相同,那你就不需要改动数据库了。

是的,使用相同的 CDN,只需将拉取区域的源 URL 更改为 DO Spaces。:slightly_smiling_face:

我找到了另一种方法,明天我会先尝试一下。

  1. 使用新参数重新构建站点
  2. 使用 aws s3 命令行工具将文件从旧存储迁移到新存储
  3. 使用 DbHelper.remap 将路径从旧存储重新映射到新存储

谢谢 Falco,我会试试的!:heart::slightly_smiling_face:

我在 howto 中找到了关于重映射过程的信息:

现在我正在谷歌搜索如何使用 AWS S3 命令行工具。希望我能找到一份分步指南。谢谢。:slightly_smiling_face:

昨晚迁移顺利完成,没有任何问题!:slight_smile: 感谢 Falco!:heart: DO Spaces 修复了之前在 B2 云存储上的许多错误,而且速度也更快多了。感谢各位的帮助!:slight_smile:

能多说说 Backblaze 的错误情况吗?我一直推荐它(尽管主要是用于备份)。

我们之前在日志中收到大量来自 JS 文件的“url forbidden”警告,现在日志已清理干净。有时 Composer 会卡住,出现这类问题,但现在运行流畅且迅速。

他们从未在我们 API 密钥过期时通知我们,这是最大的问题之一。然而,B2 面板上显示“永不过期”,但实际上每隔几个月就会过期,导致我们的网站瘫痪。我认为 B2 存在停机或其他不稳定的情况,因为有时图片上传会失败。

我不确定是否存在推送通知问题,也许这也是原因之一,但目前还不确定,我们正在测试。:slightly_smiling_face:

对我们来说,迁移到 DigitalOcean Spaces 法兰克福区域是一个正确的选择,因为我们的论坛也部署在那里。到目前为止,速度更快、更稳定。希望未来也能保持良好表现。:slightly_smiling_face:

太好了!你能分享一下你进行迁移时采取的步骤吗?