指南

Cloudflare R2 文件管理器:将其连接到 Nubbo

如何将 Cloudflare R2 存储桶连接到 Nubbo:API 令牌、Account ID、向导的每一步、CORS 规则,以及失败时该怎么办。

Nubbo 通过 R2 API 令牌和你账户的 Account ID 连接 Cloudflare R2。几分钟后,你的存储桶就会出现在一个文件浏览器中,支持直接上传、分享链接和相册。本指南按照 Nubbo 向导一步步说明两种方式:自动连接,或使用仅限一个存储桶的密钥。

你将获得什么

  • 像使用网盘一样浏览存储桶:文件夹、视图、搜索、回收站、标签和收藏。
  • 在浏览器和 Cloudflare R2 之间直接上传和下载文件。文件从不经过 Nubbo 的服务器。
  • 分享文件和文件夹时可设置密码、到期时间和下载次数限制,还能把文件接收到你的存储桶并创建相册。
  • 你的密钥使用 AES-256-GCM 加密保存,你可以随时断开存储桶的连接。

开始之前

你需要一个 Cloudflare R2 账户和一个 Nubbo 账户。你连接的每个存储桶都计入你的套餐限额:免费套餐允许 2 个,Personal 允许 5 个,Pro 不限。在创建第一个存储桶之前,Cloudflare 会要求你在控制台中激活 R2 订阅。如果你的存储桶设有管辖区(EU、FedRAMP 或 US),在向导中选择它,Nubbo 就会使用该管辖区的端点。

选择连接方式

Nubbo 向导提供两种方式。两者的结果相同:存储桶已连接,并可从浏览器上传。

自动使用受限密钥
密钥可访问整个账户仅限一个存储桶
存储桶Nubbo 使用你现有的一个,或新建一个你需要先创建
CORSNubbo 为你添加规则你自行添加规则
何时选择最快的方式不想授予整个账户的访问权限时

受限密钥是 Nubbo 所需的最小权限:对一个存储桶的 Object Read & Write。使用它时 Nubbo 无法列出你的存储桶,也无法新建存储桶,因此你需要输入存储桶名称并自行添加 CORS 规则。

自动连接

第 1 步:在 Cloudflare R2 中创建密钥

  1. 登录 dash.cloudflare.com 并打开 R2 object storage。控制台可能会以你的语言显示菜单。
  2. 打开 API Tokens,点击 Create Account API token。也可以从 Overview 的 Account Details、Manage 进入。
  3. 选择 Admin Read & Write 权限并创建令牌。
  4. 复制 Access Key ID 和 Secret Access Key。Cloudflare 只显示一次私有密钥。请使用这两个密钥,而不是令牌值。
  5. 同时复制你的 Account ID,它显示在 R2 的 Overview 页面上。

第 2 步:在 Nubbo 中连接存储桶

  1. 在 Nubbo 中打开 存储桶,点击 连接存储桶。选择 Cloudflare R2,然后点击 继续。

    Nubbo 向导的服务商步骤,已选择 Cloudflare R2 Nubbo 向导的服务商步骤,已选择 Cloudflare R2
  2. 选择 自动,然后点击 继续。

    连接方式步骤,包含自动和使用受限密钥两个选项 连接方式步骤,包含自动和使用受限密钥两个选项
  3. 在 你的密钥 这一步,粘贴 Access Key ID、Secret Access Key 和 Account ID。Nubbo 会根据 Account ID 生成你账户的端点。R2 的区域始终是 auto。点击 检查密钥 之前,选择存储桶的 管辖区:大多数存储桶选 默认(无管辖区),也可以选 EU、FedRAMP 或 US。端点会随之改变(欧盟为 https://<ACCOUNT_ID>.eu.r2.cloudflarestorage.com),列表也只显示该管辖区的存储桶。点击 检查密钥。Nubbo 会检查密钥是否可用,以及是否可访问整个账户。

    Cloudflare R2 的你的密钥步骤,包含快速指南和密钥字段 Cloudflare R2 的你的密钥步骤,包含快速指南和密钥字段
  4. 选择你的一个存储桶并点击 使用此存储桶,或选择 新建,输入名称(如有要求,再选择区域),然后点击 创建并准备。Nubbo 会为存储桶添加一条 CORS 规则,只允许从应用上传和下载,并保留存储桶已有的规则。

    你的存储桶步骤,包含存储桶列表和新建选项 你的存储桶步骤,包含存储桶列表和新建选项
  5. 查看三项检查结果,如有需要可修改 在 Nubbo 中的名称,然后点击 完成。存储桶会出现在 存储桶 页面中,你可以在文件浏览器中打开它。

    完成步骤,包含连接、存储桶和 CORS 的检查结果 完成步骤,包含连接、存储桶和 CORS 的检查结果

如果 Nubbo 无法用你的密钥添加 CORS 规则,向导会带你进入 CORS 步骤。此时请按照 添加 CORS 规则 操作。

使用受限密钥连接

第 1 步:在 Cloudflare R2 中准备存储桶和密钥

  1. 在 R2、Overview 中点击 Create bucket 并为其命名(小写字母、数字和连字符)。无需选择区域。如果数据必须留在欧盟,请选择 EU 管辖区:端点会随之改变。
  2. 打开 API Tokens,点击 Create Account API token。
  3. 选择 Object Read & Write 权限,并将其限制为你的存储桶。
  4. 复制 Access Key ID、Secret Access Key 和你的 Account ID。

第 2 步:在 Nubbo 中连接存储桶

  1. 在 存储桶 页面中点击 连接存储桶,选择 Cloudflare R2,然后选择 使用受限密钥。
  2. 粘贴 Access Key ID、Secret Access Key 和 Account ID。点击 检查密钥 之前,选择与存储桶相同的 管辖区。点击 检查密钥。
  3. 输入准确的存储桶名称,然后点击 检查访问权限。
  4. 向导会进入 CORS 步骤,并显示你需要添加的规则。

添加 CORS 规则

CORS 规则让浏览器可以在 https://nubbo.app 上从你的存储桶上传和下载文件。它与向导在 CORS 步骤中显示的规则相同。

  1. 在 R2 中打开存储桶,进入 Settings。
  2. 在 CORS Policy 下点击 Add CORS policy,然后选择 JSON 选项卡。
  3. 粘贴规则,然后点击 Save。Cloudflare 最多可能需要 30 秒才能应用。
[
  {
    "AllowedHeaders": ["*"],
    "AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
    "AllowedOrigins": ["https://nubbo.app"],
    "ExposeHeaders": ["ETag"],
    "MaxAgeSeconds": 3600
  }
]
CORS 步骤,显示要添加到存储桶的规则 CORS 步骤,显示要添加到存储桶的规则

保存后,回到 Nubbo 并点击 已添加,检查。如果你的密钥有权修改 CORS,尝试帮我配置 会替你完成。

如果出现问题

Nubbo 中的提示怎么办
“此密钥似乎仅限一个存储桶。你可以继续使用受限方式,或创建一个拥有完全访问权限的密钥。”点击继续使用受限密钥,或创建一个可访问整个账户的密钥,然后点击换一个密钥。
“你的密钥没有创建存储桶的权限。”使用拥有完全访问权限的密钥,或在控制台中创建存储桶后点击我已在控制台中创建。
“该名称在此服务商处已被使用;请换一个。”存储桶名称在整个服务商范围内唯一:请换一个。
“你的密钥没有配置它的权限。”按上文所述手动添加 CORS 规则。
“仍未生效。请检查规则后再试一次;部分服务商需要约一分钟才能应用。”确认来源正好是 https://nubbo.app,末尾没有斜杠,等待一分钟后再检查。
“此存储桶已在使用中。”该存储桶已在 Nubbo 中连接,可能在你的账户中,也可能在其他账户中。
“凭据无效。请检查访问密钥和私有访问密钥。”确认你粘贴的是令牌的 Access Key ID 和 Secret Access Key,而不是 Cloudflare API 令牌值。
“未找到存储桶。请核对名称和区域。”检查名称,并确认 Nubbo 中的管辖区与存储桶一致(R2 在存储桶的 Settings 中显示)。

费用

R2 不收取出站流量费,并提供每月免费额度。我们在 Cloudflare R2 免费额度 中进行了说明。

常见问题

在哪里找到我的 Cloudflare Account ID?

在 R2 Overview 页面的 Account Details 下。它是一串 32 个字符的字符串,由数字和字母 a 到 f 组成。

R2 令牌需要什么权限?

Nubbo 所需的最小权限是限于你的存储桶的 Object Read & Write,配合受限密钥方式:你输入存储桶名称并自行添加 CORS 规则。自动方式需要 Admin Read & Write,Nubbo 用它列出你的存储桶、新建存储桶并配置其 CORS。

R2 使用哪个区域?

无需选择:R2 使用 auto 区域,Nubbo 会替你设置。Cloudflare 的位置提示不会影响存储桶的连接方式。

可以连接设有管辖区(例如欧盟)的 R2 存储桶吗?

可以。在“你的密钥”步骤中选择存储桶的管辖区(EU、FedRAMP 或 US)。每个管辖区都有自己的端点,例如 https://<ACCOUNT_ID>.eu.r2.cloudflarestorage.com,并且只显示在其中创建的存储桶。

从 Nubbo 下载会在 R2 上产生出站流量费吗?

不会。R2 不对出站数据传输收费。不过下载会计为读取操作。

来源

价格和限制来自以下官方页面。服务商可能会调整,请在做决定前核实。