01进入访问控制
登录火山引擎控制台,点击右上角账号头像,在弹出菜单里选择「访问控制」。
02打开 IAM 用户
在访问控制页面进入「用户管理 → 用户」,点击右上角「新建用户」。
03选择创建方式
选择「通过用户名创建」。不要用手机号或邀请其他账号的方式,这两种都不适合程序访问。
04填写用户信息与访问方式
- 用户名:建议用容易识别的名字,例如
storagebear-tos,仅用于程序访问。 - 手机号 / 邮箱:可选,用于你自己在控制台里找回这个用户。
- 编程访问:勾选,允许用 AccessKey 调用 API。
- 允许用户管理自己的 API 密钥:勾选,之后可以自己创建或轮换密钥。
- 控制台访问:不要勾选,避免这个账号能登进控制台。
05分配权限
权限设置选择「直接添加权限」,然后勾选两个策略:
AccessKeySelfManageAccess:允许该用户管理自己的 AccessKey。TOSFullAccess:允许使用对象存储 TOS。
不要勾选 AdministratorAccess。这个 IAM 用户只服务存储熊,TOSFullAccess 已经够用;如果你账号里还有别的重要资源,后续可以再收紧成只允许指定桶的自定义策略。
06保存 AccessKey 与 Secret
创建完成后,控制台会显示 AccessKey ID 和 Secret Access Key。立刻复制或下载保存:
- Secret 通常只显示一次,关掉页面就只能重新创建。
- 不要发到群里,不要提交到代码仓库,也不要在公开截图里露出明文。
- 存进密码管理器,或者等下直接粘进存储熊的输入框。
立刻回到 IAM 用户列表,禁用或删除这个 AccessKey,再新建一个。泄露过的密钥永远不要再用。
07回到产品菜单
点击顶部「产品」→「存储」→「对象存储」。
08进入对象存储
在对象存储产品页点击「立即使用」,进入 TOS 控制台。
09打开桶列表
在 TOS 控制台左侧进入「桶列表」,点击「创建桶」。
10填写存储桶配置
- 名称:按控制台提示填写唯一名称,例如
<你的名字>-storage。 - 区域:选离你最近的区域。创建后不要随意更换,存储熊的 Endpoint 和区域必须与桶一致。
- 版本控制:开或关都行,个人使用可以先关闭。
- 桶策略:选「私有」,不要选公共读 / 公共读写。
- 默认存储类型:选「标准存储」,理由见文末的选购建议。
- 项目:保持 default 即可。
11记录 S3 Endpoint 与 Region
进入刚创建的桶的「概览」页,在「访问域名」里找到 S3 Endpoint,不要复制普通的「外网访问」域名。
| 你在概览页看到的 | 填进存储熊的值 |
|---|---|
S3 Endpoint,例如 https://tos-s3-cn-shanghai.volces.com | 原样复制,必须带 https:// 且包含 -s3- |
| 所属地域,例如「华东2(上海)」 | Region:cn-shanghai |
| 存储桶名称 | Bucket 名称,大小写必须完全一致 |
S3 Endpoint、Region、桶名必须来自同一个桶。区域写错是最常见的接入失败原因。
12在存储熊添加云存储
打开存储熊 →「云端与续费」→「添加云存储」,选择「火山引擎 TOS · Beta」。
页面上的余额查询是 Beta 功能,需要额外的费用中心权限;即使余额查询失败,也不影响对象存储接入和文件上传。
13填写连接信息
| 字段 | 填什么 |
|---|---|
| 显示名称 | 自定义,例如「火山 TOS」 |
| S3 Endpoint | 教程 11 复制的 S3 Endpoint,必须带 https:// 且包含 -s3- |
| 地域 Region | 教程 11 的区域,例如 cn-shanghai |
| Bucket 名称 | 创建桶时的完整名称,大小写必须一致 |
| 访问样式 | 「虚拟主机样式(Virtual)」 |
| 配额记录 / 到期日期 / 续费网址 | 都可以留空,填了用于到期提醒 |
| AccessKey / SecretKey | 教程 6 保存的 ID 与密钥 |
先点「测试连接」,通过后再保存。测试失败就依次核对 Endpoint、Region、Bucket、密钥,以及第 5 步的 TOSFullAccess 权限是否真的勾上了。
+Cloudflare R2 接入步骤
Cloudflare R2 与火山引擎 TOS 一样提供 S3 兼容接口,但有两处必须注意:Endpoint 里要带账户 ID,Region 固定填 auto,并且访问样式必须选路径样式。免费额度为每月 10 GB 存储与一定量的读写请求,超出后按量计费,具体以 Cloudflare 当期说明为准。
- 开通 R2
登录 Cloudflare 控制台,左侧进入「R2 对象存储」。首次使用需要绑定支付方式才能开通,开通后才会出现 Bucket 与 API 令牌入口。
- 创建 Bucket
点击「Create bucket」,名称只能用小写字母、数字和连字符,例如
myname-storage。位置保持默认(Automatic)即可,R2 会自动选择就近区域。 - 记录 Endpoint 与账户 ID
在 R2 概览页右侧可以看到账户 ID。S3 Endpoint 的格式固定为:
https://<账户ID>.r2.cloudflarestorage.com。不要填成<bucket>.<账户ID>.r2.cloudflarestorage.com,也不要省略账户 ID。 - 创建 API 令牌
进入「Manage R2 API Tokens」→「Create API token」。权限选择 Object Read & Write,并把范围限制在上一步创建的 Bucket(不要用账户级全权限令牌)。创建后页面会显示 Access Key ID 与 Secret Access Key,Secret 只显示一次,请立刻保存。
- 在存储熊填写
打开「云端与续费 → 添加云存储」,厂商选择 Cloudflare R2,然后按下表填写。先点「测试连接」,通过后再保存。
| 字段 | 填什么 |
|---|---|
| 显示名称 | 自定义,例如「Cloudflare R2」 |
| S3 Endpoint | https://<账户ID>.r2.cloudflarestorage.com,必须带账户 ID 与 https:// |
| 地域 Region | auto(R2 不接受具体区域名) |
| Bucket 名称 | 与 R2 控制台里的 Bucket 完全一致,含大小写 |
| 访问样式 | 路径样式(Path) |
| AccessKey / SecretKey | API 令牌页面给出的 Access Key ID 与 Secret Access Key |
| 配额记录 / 到期日期 / 续费网址 | 都可以留空,填了用于到期提醒 |
① Endpoint 漏了账户 ID;② Region 填成了具体地区;③ 访问样式选了虚拟主机样式;④ 令牌权限只有 Read、没有 Write;⑤ Bucket 名大小写不一致。任意一条不对,测试连接都会失败并返回 403 或 404。
存储熊的文件读写由电脑端的本地代理直接发起,不经过浏览器,因此不用给 R2 配置 CORS 规则。分享链接是预签名 GET 链接,有效期 6 天,到期后返回 403 属正常现象,重新创建即可。
+存储类型选购建议
建议购买标准存储,并使用按量购买 / 按量付费。不要为了首年低价就把常用文件放进低频、归档或冷归档存储——这些类型单价虽低,但取回可能产生额外费用和等待时间,不适合需要随时打开、迁出或预览的文件。资源包只在用量可预测时再考虑。
以上为个人使用经验分享,不构成商业意见或购买建议。实际价格、可用区域与计费规则请以火山引擎控制台当期的说明为准。