约 5 分钟

如何上传文件到 Cloudflare R2 并分享链接

Cloudflare R2 与 Aktar 非常搭配:没有出站流量费,免费额度包含 10 GB,还能通过 Cloudflare 网络为自定义域名提供服务。你不必从控制台复制账户 ID、存储桶名称和两串密钥:设置 Cloudflare R2…只需要一个 API 令牌,通过会自动填好权限的链接创建,其余都由它完成。更想全部手动配置?请看最后一步。

准备工作

  • 一个 Cloudflare 账号(R2 的免费额度包含 10 GB)
  • 如果希望链接使用自己的域名,需要一个托管在 Cloudflare 上的域名(可选)
  • Mac、Windows、iPhone、iPad 或 Android 版 Aktar

操作步骤

  1. 1

    打开“设置 Cloudflare R2”

    在 Aktar 的设置中打开上传目标,选择设置 Cloudflare R2…。还没有任何上传目标时,它就是主按钮。然后点击打开 Cloudflare。

  2. 2

    创建 API 令牌

    Cloudflare 的令牌页面会打开,名称已填为 Aktar,并已选好两项权限:R2 Storage: Edit,用于创建存储桶并上传文件;Zone: Read,用于列出你的域名以设置公开链接。选择 Continue to summary,再选择 Create Token,然后复制令牌。

  3. 3

    粘贴并选择

    把令牌粘贴到 Aktar。如果你有多个账户,先选择账户,再选择存储桶:新建一个(Aktar 建议使用 aktar)或使用已有的。最后选择公开链接的指向:

    • 存储桶的 r2.dev 地址立即可用。Cloudflare 会对它限速,所以最适合用来试用。
    • 你 Cloudflare 账户下某个域名的子域名,例如 files.example.com,适合正式使用。Cloudflare 会添加 DNS 记录和证书,需要几分钟。
  4. 4

    设置

    点击设置。Aktar 会创建存储桶、开启公开链接、保存上传目标,并自动运行测试连接。使用你自己的域名时,链接路径非常简洁,例如 files.example.com/A7kdP2x.png(参见短链接)。选择完成,或选择编辑修改任何设置,然后把第一个文件拖到 Aktar 上。

  5. 5

    更想手动配置?

    如果你更想使用仅限一个存储桶的 R2 令牌:在 Cloudflare 控制台中打开 R2 Object Storage 并创建一个存储桶。在存储桶的 Settings 中,于 Custom Domains 下绑定自定义域名,或启用 Public Development URL。然后在 Manage API tokens 中,为该存储桶创建一个具有 Object Read & Write 权限的令牌,复制 Access Key ID 和 Secret Access Key(密钥只显示一次)。在 Aktar 中选择添加上传目标,再选择 Cloudflare R2,按下表填写各项。

Aktar 中的设置

在“设置 → 上传目标 → 添加上传目标”中填写以下值。字段名称与应用内保持一致。

字段示例值
服务商Cloudflare R2
配置名称Personal任意名称均可。
账户 ID3f9a71c0e2b8…在 R2 概览页面中查看。
区域auto保持默认值。
访问密钥 IDa1b2c3d4…来自 R2 API 令牌。
私有访问密钥••••••••保存在钥匙串或凭据管理器中。
存储桶screenshots
公开基础 URLfiles.example.com你的自定义域名或 r2.dev URL。
对象路径{short}.{ext}可选,参见文件名和目录。

小技巧

  • Aktar 不会保留令牌。它会把令牌转换为 S3 密钥(令牌的 ID 就是访问密钥,令牌值的哈希就是密钥),像其他上传目标的密钥一样保存,然后丢弃令牌。想切断 Aktar 的访问时,随时可以在 Cloudflare 删除该令牌。
  • 自定义域名会经过 Cloudflare 缓存,热门链接在全球都能快速加载,且不产生额外费用。
  • 在一台设备上设置好,再用传输到其他设备把上传目标连同密钥迁移到你的其他电脑和手机上。
  • 想让上传在 1 到 30 天后自动删除?只要密钥有权管理生命周期规则(“设置 Cloudflare R2”生成的密钥或 Admin Read & Write 令牌都可以),Aktar 就会替你添加存储桶的生命周期规则。如果使用 Object Read & Write 令牌,请在存储桶 Settings 的 Object Lifecycle Rules 中自行添加。详见到期自动删除的上传。

故障排查

“设置”提示公开链接暂时无法使用

刚绑定你自己的域名后,Cloudflare 仍在添加 DNS 记录和证书。请等几分钟,然后从该上传目标的菜单中重新运行测试连接。

“设置”找不到该令牌对应的账户

创建令牌时没有授予任何账户的访问权限。请从“打开 Cloudflare”重新创建,并在 Account Resources 下保留它提供的账户(或 All accounts)。

链接返回 Access Denied 或 403

确认公开基础 URL 是你的自定义域名或 r2.dev URL。…r2.cloudflarestorage.com 端点仅用于 API,永远不会公开提供文件。详见 Access Denied 错误。

“测试连接”提示凭证无效

如果是手动配置,请使用 R2 API 令牌中的 Access Key ID 和 Secret Access Key,而不是普通的 Cloudflare API 令牌或 Global API Key,并检查账户 ID 中是否有多余的空格。

上传正常,但链接加载慢或被限速

你很可能在使用 r2.dev 开发 URL。正式使用请绑定自定义域名。

仍然遇到问题?浏览常见问题,或在 GitHub 上提问。