跳转到内容
搜索文档

Mastodon

最后更新 查看 MarkdownAgent 设置

Mastodon 是一款流行的联邦宇宙软件。本指南将说明如何配置 R2 作为自托管 Mastodon 实例的对象存储,无论是新实例还是现有实例

设置新实例

您可以通过多种方式设置自托管 Mastodon 实例。有关更多详情,请参阅官方文档。在安装后到达 Mastodon 文档中的配置环境步骤时,请参阅以下步骤进行后续操作。

1. 确定访问文件的主机名

与 Mastodon 实例的默认主机名不同,文件的对象存储需要唯一的主机名。例如,如果您将 Mastodon 的主机名设置为 mastodon.example.com,可以使用 mastodon-files.example.comfiles.example.com 来访问文件。这意味着当访问 mastodon.example.com 上的实例时,如果帖子附有图片或视频等媒体,文件将从本步骤确定的主机名(如 mastodon-files.example.com)提供。

2. 创建并设置 R2 存储桶

  1. 在 Cloudflare 仪表板中,前往 R2 object storage(R2 对象存储) 页面。

    Go to Overview ↗
  2. 选择 Create bucket(创建存储桶)

  3. 输入存储桶名称,然后选择 Create bucket(创建存储桶)。此名称在设置 Mastodon 实例时是内部的,不公开访问。

  4. 创建存储桶后,导航到此存储桶的 Settings(设置) 选项卡并复制 S3 API 的值。

  5. Settings(设置) 选项卡中,选择 Connect Domain(连接域名) 并输入步骤 1 中的主机名。

  6. 返回 R2 概览页面并选择 Manage R2 API Tokens(管理 R2 API 令牌)

  7. 选择 Create API token(创建 API 令牌)

  8. 通过选择 API 名称旁边的铅笔图标将令牌命名为 Mastodon,并授予 Edit(编辑) 权限。选择 Create API Token(创建 API 令牌) 完成令牌创建。

  9. 复制 Access Key ID(访问密钥 ID)Secret Access Key(秘密访问密钥) 的值。

3. 为 Mastodon 配置 R2

根据官方配置文件配置 Mastodon 实例时,用以下详细信息替换 File storage(文件存储) 部分。

S3_ENABLED=true
S3_ALIAS_HOST={{mastodon-files.example.com}}                  # Change to the hostname determined in step 1
S3_BUCKET={{your-bucket-name}}                                # Change to the bucket name set in step 2
S3_ENDPOINT=https://{{unique-id}}.r2.cloudflarestorage.com/   # Change the {{unique-id}} to the part of S3 API retrieved in step 2
AWS_ACCESS_KEY_ID={{your-access-key-id}}                      # Change to the Access Key ID retrieved in step 2
AWS_SECRET_ACCESS_KEY={{your-secret-access-key}}              # Change to the Secret Access Key retrieved in step 2
S3_PROTOCOL=https
S3_PERMISSION=private

配置完成后,您可以运行实例。实例运行后,上传媒体附件并验证附件是否从上述设置的主机名检索。返回 R2 中的存储桶页面时,您应看到以下结构。

实例设置并运行后的 Mastodon 存储桶结构

迁移到 R2

如果您已有正在运行的实例,可以将媒体文件迁移到 R2 并受益于零出口费用

1. 设置 R2 存储桶并开始文件迁移

  1. (可选)为最小化迁移文件数量,您可以使用 Mastodon admin CLI 清理未使用的文件。
  2. 按照上述设置新实例部分的步骤 1 和 2 设置 R2 存储桶以准备文件迁移。
  3. 将所有媒体文件迁移到 R2。请参阅提供的示例以连接各种提供商。如果您当前在本地托管这些媒体文件,可以使用 rclone 将这些本地文件上传到 R2。

2. (可选)设置文件路径重定向

在文件迁移进行中(可能需要一段时间)时,您可以准备文件路径重定向设置。

如果您在本地托管媒体文件,可能需要设置重定向。默认情况下,本地托管的媒体文件路径类似 https://mastodon.example.com/cache/...,在 R2 存储桶与 Mastodon 实例一起运行后,需要重定向到类似 https://mastodon-files.example.com/cache/... 的路径。如果您已使用另一个 S3 兼容对象存储服务并希望保持相同的主机名,则无需设置重定向。

批量重定向 适用于所有套餐。有关更多信息,请参阅在仪表板中创建批量重定向

作为 Bulk Redirects 一部分的源 URL 及其新目标 URL 列表

3. 验证存储桶和重定向

根据迁移计划,您可以验证存储桶是否公开可访问以及重定向是否正常工作。要验证,请打开类似 https://mastodon.example.com/cache/... 的已上传媒体文件路径,将主机名从 mastodon.example.com 替换为 mastocon-files.example.com 并访问新路径。如果文件正确打开,请继续最后一步。

4. 完成迁移

迁移期间您的实例可能仍在运行,迁移期间可能有新创建的媒体文件,通过直接上传或从其他联邦实例获取。要仅上传新创建的文件,可以使用 rclone 等程序。请注意,重新运行同步程序时,所有现有文件都将被检查,至少使用 Class B 操作

所有文件同步完成后,可以使用设置新实例步骤 3 中提到的新的对象存储配置重启 Mastodon 实例。

这篇文档对您有帮助吗?