Nubbo 通过 Spaces 访问密钥和你的存储桶所在的区域连接 DigitalOcean Spaces。几分钟后,它们就会出现在一个文件浏览器中,支持直接上传、分享链接和相册。本指南按照 Nubbo 向导一步步说明两种方式:自动连接,或使用仅限一个存储桶的密钥。
你将获得什么
- 像使用网盘一样浏览存储桶:文件夹、视图、搜索、回收站、标签和收藏。
- 在浏览器和 DigitalOcean Spaces 之间直接上传和下载文件。文件从不经过 Nubbo 的服务器。
- 分享文件和文件夹时可设置密码、到期时间和下载次数限制,还能把文件接收到你的存储桶并创建相册。
- 你的密钥使用 AES-256-GCM 加密保存,你可以随时断开存储桶的连接。
开始之前
你需要一个 DigitalOcean Spaces 账户和一个 Nubbo 账户。你连接的每个存储桶都计入你的套餐限额:免费套餐允许 2 个,Personal 允许 5 个,Pro 不限。Spaces 在 13 个区域提供:nyc3、ams3、sfo2、sfo3、sgp1、lon1、fra1、tor1、blr1、syd1、atl1、ric1 和 mkc1。Nubbo 会询问区域,因为每个区域都有自己的端点。
选择连接方式
Nubbo 向导提供两种方式。两者的结果相同:存储桶已连接,并可从浏览器上传。
| 自动 | 使用受限密钥 | |
|---|---|---|
| 密钥 | 可访问整个账户 | 仅限一个存储桶 |
| 存储桶 | Nubbo 使用你现有的一个,或新建一个 | 你需要先创建 |
| CORS | Nubbo 为你添加规则 | 你自行添加规则 |
| 何时选择 | 最快的方式 | 不想授予整个账户的访问权限时 |
自动连接
第 1 步:在 DigitalOcean Spaces 中创建密钥
- 在 DigitalOcean 控制面板中打开 Spaces Object Storage,进入 Access Keys 选项卡。
- 点击 Create Access Key,选择 Full access 并为其命名,例如
nubbo。 - 复制访问密钥和私有密钥。DigitalOcean 只显示一次私有密钥。
第 2 步:在 Nubbo 中连接存储桶
在 Nubbo 中打开 存储桶,点击 连接存储桶。选择 DigitalOcean Spaces,然后点击 继续。

选择 自动,然后点击 继续。

在 你的密钥 这一步,粘贴访问密钥和私有密钥,并选择你的存储桶所在的区域。点击 检查密钥。Nubbo 会检查密钥是否可用,以及是否可访问整个账户。

选择你的一个存储桶并点击 使用此存储桶,或选择 新建,输入名称(如有要求,再选择区域),然后点击 创建并准备。Nubbo 会为存储桶添加一条 CORS 规则,只允许从应用上传和下载,并保留存储桶已有的规则。

查看三项检查结果,如有需要可修改 在 Nubbo 中的名称,然后点击 完成。存储桶会出现在 存储桶 页面中,你可以在文件浏览器中打开它。

如果 Nubbo 无法用你的密钥添加 CORS 规则,向导会带你进入 CORS 步骤。此时请按照 添加 CORS 规则 操作。
使用受限密钥连接
第 1 步:在 DigitalOcean Spaces 中准备存储桶和密钥
- 在 Spaces Object Storage 中点击 Create Bucket,选择区域和名称,然后创建存储桶。
- 在 Access Keys 中点击 Create Access Key,然后选择 Limited access。
- 选择你的存储桶并赋予 Read/Write/Delete 权限,为密钥命名并创建。
- 复制访问密钥和私有密钥。受限密钥无法用于设置了存储桶策略的存储桶。
第 2 步:在 Nubbo 中连接存储桶
- 在 存储桶 页面中点击 连接存储桶,选择 DigitalOcean Spaces,然后选择 使用受限密钥。
- 粘贴访问密钥和私有密钥,并选择区域。点击 检查密钥。
- 输入准确的存储桶名称,然后点击 检查访问权限。
- 向导会进入 CORS 步骤,并显示你需要添加的规则。
添加 CORS 规则
CORS 规则让浏览器可以在 https://nubbo.app 上从你的存储桶上传和下载文件。它与向导在 CORS 步骤中显示的规则相同。
- 在 Spaces Object Storage 中打开存储桶,进入 Settings。
- 在 CORS Configurations 下点击 Add。
- 在表单中填写以下值,然后点击 Save CORS Configuration。
Origin: https://nubbo.app
Allowed Methods: GET, PUT, POST, DELETE, HEAD
Allowed Headers: *
Access Control Max Age: 3600

使用受限密钥时,你需要自行添加:在 DigitalOcean 上,通过 API 修改 CORS 需要 Full access 密钥。
保存后,回到 Nubbo 并点击 已添加,检查。部分服务商需要约一分钟才能应用。如果你的密钥有权修改 CORS,尝试帮我配置 会替你完成。
如果出现问题
| Nubbo 中的提示 | 怎么办 |
|---|---|
| “凭据无效。请检查访问密钥和私有访问密钥。” | 重新复制两个密钥,开头和结尾不要有空格。 |
| “此密钥似乎仅限一个存储桶。你可以继续使用受限方式,或创建一个拥有完全访问权限的密钥。” | 点击继续使用受限密钥,或创建一个可访问整个账户的密钥,然后点击换一个密钥。 |
| “未找到存储桶。请核对名称和区域。” | 核对准确的存储桶名称,并确认所选区域就是存储桶所在的区域。 |
| “你的密钥没有创建存储桶的权限。” | 使用拥有完全访问权限的密钥,或在控制台中创建存储桶后点击我已在控制台中创建。 |
| “该名称在此服务商处已被使用;请换一个。” | 存储桶名称在整个服务商范围内唯一:请换一个。 |
| “你的密钥没有配置它的权限。” | 按上文所述手动添加 CORS 规则。 |
| “仍未生效。请检查规则后再试一次;部分服务商需要约一分钟才能应用。” | 确认来源正好是 https://nubbo.app,末尾没有斜杠,等待一分钟后再检查。 |
| “此存储桶已在使用中。” | 该存储桶已在 Nubbo 中连接,可能在你的账户中,也可能在其他账户中。 |
| “存储桶位于不同的区域。请核对配置的区域。” | 在 Nubbo 中选择你创建存储桶时所用的同一区域。 |
| “访问被拒绝。请检查凭据是否仍然有效及其权限。” | 使用受限密钥时,确认它对该存储桶拥有 Read/Write/Delete 权限,并且存储桶没有设置存储桶策略。 |
费用
Spaces 按月费计费,月费包含存储和流量。我们在 DigitalOcean Spaces 价格 中进行了说明。
常见问题
我需要哪种 Spaces 密钥?
自动方式需要一个 Full access 密钥。使用受限密钥时,需要一个对你的存储桶拥有 Read/Write/Delete 权限的 Limited access 密钥。
在 Nubbo 中应选择哪个区域?
存储桶所在的区域:nyc3、ams3、sfo2、sfo3、sgp1、lon1、fra1、tor1、blr1、syd1、atl1、ric1 或 mkc1。控制面板会在存储桶名称旁边显示它。
为什么 Nubbo 无法用我的受限密钥配置 CORS?
因为在 DigitalOcean 上,通过 API 修改 CORS 需要 Full access 密钥。使用受限密钥时,你需要自行在 Settings、CORS Configurations 中添加。
可以连接多个区域的存储桶吗?
可以。每个存储桶使用自己的区域连接,数量以你的套餐允许的上限为准。
来源
价格和限制来自以下官方页面。服务商可能会调整,请在做决定前核实。