腾讯云 COS
大约 10 分钟,不用花钱,就能在腾讯云 COS 上给孤云准备好一个桶和一对密钥。
分步操作
-
第 1 步
建存储桶
- 先确认你在哪一边:国际站 www.tencentcloud.com(控制台
console.intl.cloud.tencent.com)|中国站 cloud.tencent.com(控制台console.cloud.tencent.com)。两边账号不通用。 - 腾讯云控制台 →对象存储 COS →「存储桶列表」→「创建存储桶」,填桶名、选一个靠近你的地域(例如
ap-guangzhou),访问权限选「私有读写」。 - 桶名末尾会自动加上你的 APPID,形如
my-photos-1234567890:复制时连后缀一起复制,孤云要的是这个完整桶名。
- 先确认你在哪一边:国际站 www.tencentcloud.com(控制台
-
第 2 步
建子用户与密钥
- 访问管理 CAM →「用户」→「新建用户」,访问方式只勾「编程访问」,不要勾控制台登录。
- 创建后复制这个子用户的 SecretId 与 SecretKey:SecretKey 只显示一次,现在就把两个值存好;不要用主账号密钥。
-
第 3 步
给这个子用户挂权限
- CAM →「策略」→「新建自定义策略」→「按策略语法创建」,把下面这段 JSON 贴进策略内容并保存。
- 回到「用户」打开这个子用户,点「关联策略」把刚才那条策略关联上;也可以用下面那两条预设策略。
-
第 4 步
回孤云填好并测试
- 孤云「添加存储」→ 服务商选腾讯云 COS,按下面那张表填桶名、APPID、端点与密钥。
- 点「测试连接并保存」,通过后这条存储就会出现在孤云的存储列表里。
APPID 与端点:两处最容易填错
APPID 是你账号的一串数字(示例 1234567890):在控制台「账号信息」里看,或看任何已有桶的名字末尾。腾讯云 COS 与 Cloudflare R2 各比别的服务商多填一格(APPID / Account ID)。把完整桶名填进桶名格也行。
端点要填服务端点 https://cos.<地域>.myqcloud.com,不带桶名。控制台「概览」里那个带桶名的 https://<桶名>.cos.<地域>.myqcloud.com 叫访问域名,是给浏览器用的,填进端点就会连不上。
子用户要的权限:一段 CAM 自定义策略
把里面的桶名、APPID 与地域换成你自己的(示例值都是虚构的):
{
"version": "2.0",
"statement": [
{ "effect": "allow", "action": ["cos:*"],
"resource": ["qcs::cos:ap-guangzhou:uid/1234567890:your-bucket-name-1234567890/*"] }
]
}
这段策略故意不含删桶权限;CAM 里的权限名是操作(action)不是策略名,在策略列表里搜不到,所以要按策略语法创建。
其他情况(用不到可以跳过)
控制台两边都有,按你在哪一边选:国际站 https://www.tencentcloud.com/(控制台 https://console.intl.cloud.tencent.com/),中国站 https://cloud.tencent.com/(控制台 https://console.cloud.tencent.com/)。
- 孤云只访问你填的这一个桶(不列桶、不建桶),所以策略只需要桶级那一段。
- 想要更小的权限:把桶级那一段的
cos:*换成实际会用到的动作(读取、上传、列举)。
2024-01-01 之后新建的桶
- 默认域名不预览:用 COS 默认域名访问时浏览器会直接下载,而不是预览。
- APK / IPA 不能用默认域名分发:请求这类文件会返回
DownloadForbidden。要分享这两类文件,得绑定自定义域名(中国大陆地域的桶还要给域名做 ICP 备案)。
抄下这几个值
它们要填进孤云「添加存储」页对应的格子(腾讯云 COS 比别家多一格 APPID): 地点:在 App 里选「北京 / 中国香港 / 广州 / us-west-004 …」对应的那一项 —— 选好地点,地域与 HTTPS Endpoint 会自动填好。
| 抄下这个值 | 填进孤云的哪一格 |
|---|---|
| 桶名 控制台里的完整桶名,含末尾的 -APPID 后缀,例如 my-photos-1234567890。 | 桶名称 |
| APPID 桶名末尾那串数字,例如 1234567890:见控制台「账号信息」,或任何已有桶的名字末尾。 | APPID |
| 端点 服务端点,形如 https://cos.ap-guangzhou.myqcloud.com,不带桶名。 | Endpoint |
| 密钥 刚才那个子用户的 SecretId 与 SecretKey。 | SecretId 与 SecretKey |
怎么知道成了
- 「测试连接并保存」通过,说明这对密钥能读到这个桶;孤云只列你填的这个桶的根目录,不会改动桶里的东西。
- 之后这条存储会出现在孤云的存储列表里,可以打开看桶里的文件。
- 连接报错时,到常见错误对照排查。
回到孤云,点「测试连接并保存」。