指南

DigitalOcean Spaces 文件管理器:将其连接到 Nubbo

如何将 DigitalOcean Spaces 存储桶连接到 Nubbo:访问密钥、区域、向导的每一步、CORS 规则,以及失败时该怎么办。

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 使用你现有的一个,或新建一个你需要先创建
CORSNubbo 为你添加规则你自行添加规则
何时选择最快的方式不想授予整个账户的访问权限时

自动连接

第 1 步:在 DigitalOcean Spaces 中创建密钥

  1. 在 DigitalOcean 控制面板中打开 Spaces Object Storage,进入 Access Keys 选项卡。
  2. 点击 Create Access Key,选择 Full access 并为其命名,例如 nubbo。
  3. 复制访问密钥和私有密钥。DigitalOcean 只显示一次私有密钥。

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

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

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

    连接方式步骤,包含自动和使用受限密钥两个选项 连接方式步骤,包含自动和使用受限密钥两个选项
  3. 在 你的密钥 这一步,粘贴访问密钥和私有密钥,并选择你的存储桶所在的区域。点击 检查密钥。Nubbo 会检查密钥是否可用,以及是否可访问整个账户。

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

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

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

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

使用受限密钥连接

第 1 步:在 DigitalOcean Spaces 中准备存储桶和密钥

  1. 在 Spaces Object Storage 中点击 Create Bucket,选择区域和名称,然后创建存储桶。
  2. 在 Access Keys 中点击 Create Access Key,然后选择 Limited access。
  3. 选择你的存储桶并赋予 Read/Write/Delete 权限,为密钥命名并创建。
  4. 复制访问密钥和私有密钥。受限密钥无法用于设置了存储桶策略的存储桶。

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

  1. 在 存储桶 页面中点击 连接存储桶,选择 DigitalOcean Spaces,然后选择 使用受限密钥。
  2. 粘贴访问密钥和私有密钥,并选择区域。点击 检查密钥。
  3. 输入准确的存储桶名称,然后点击 检查访问权限。
  4. 向导会进入 CORS 步骤,并显示你需要添加的规则。

添加 CORS 规则

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

  1. 在 Spaces Object Storage 中打开存储桶,进入 Settings。
  2. 在 CORS Configurations 下点击 Add。
  3. 在表单中填写以下值,然后点击 Save CORS Configuration。
Origin: https://nubbo.app
Allowed Methods: GET, PUT, POST, DELETE, HEAD
Allowed Headers: *
Access Control Max Age: 3600
CORS 步骤,显示要添加到存储桶的规则 CORS 步骤,显示要添加到存储桶的规则

使用受限密钥时,你需要自行添加:在 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 中添加。

可以连接多个区域的存储桶吗?

可以。每个存储桶使用自己的区域连接,数量以你的套餐允许的上限为准。

来源

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