一、入坑记:先聊聊我这位"老 COS 人"
讲道理,我一直是腾讯云对象存储的铁杆用户。当初写《腾讯云 COS × WorkBuddy X skill:实现我的游戏项目资源管理自动化“龙虾”》 那篇文章的时候,我就说了:COS 真香,谁用谁知道。那套方案我用 WorkBuddy 配合 COS 和 CI,把 30 张角色立绘的水印、缩略图、WebP 转换压到 3 秒完事,搁以前这活儿怎么也得半小时起步。

但日子过久了,又冒出来新的需求。
COS 确实能干,可它只管"存"。文件一多,全靠文件夹和前缀硬撑着,hero、enemy、bg、ui 全塞一个桶里,前缀越叠越长,看得人直挠头。更扎心的是多租户这档子事,策划一把钥匙、美术一把钥匙、运营一把钥匙,大家共用一个桶。万一哪位同学手滑,把别人的素材目录一锅端了,那画面太美我不敢看。
说白了,COS 的隔离靠的是"君子协定"。但是混乱熵增是天然的,秩序的维护是需要cost的。
所以当 Agent Bucket 智能体桶上线的时候,我直接就是一个"好家伙"。多用户目录、隔离、配额、文件系统能力,全给做成了产品特性。这不就是给我这种懒人量身定做的吗。
二、先弄明白:智能体桶到底是个什么神仙桶
一句话版本:智能体桶不是给 COS 套了个壳,而是在标准桶之上加了一层 Space(空间)。每个 Agent、每个用户、每个项目,都能分到一块独立地盘。隔离这件事,从"业务代码的自觉"变成了"存储系统的底线"。
三个最让我上头的点,逐个说。第一,S3 协议无缝兼容,以前怎么写对象现在还怎么写,对象级代码一行不用改。第二,天然多租户隔离,每个 Space 是存储层硬隔离,不靠前缀软隔离。第三,白捡一套网盘能力,秒传去重、分享、预览、回收站、配额、多模态检索,开箱即用,不用自己撸网盘中间层。
规模数据也够唬人。单桶默认能开 1000 万个 Space,申请一下还能扩容到 10 亿,单 Space 文件数不限。桶数上限还是 200 个,但"用 Space 分担规模"这个思路,直接把我之前"桶不够用"的焦虑治好了。
我开通后的接入参数长这样(真实数据):
- BucketName:smh2rtrl15tvo0am-1330971775
- Region:ap-chengdu
- 对象存储域名:smh2rtrl15tvo0am-1330971775.cos.ap-chengdu.myqcloud.com
- LibraryId:smh2rtrl15tvo0am
- AccessDomain:smh2rtrl15tvo0am.ap-chengdu.api.tencentsmh.cn
一个桶,两个入口。对象上传、下载、列举走 COS/S3 API,Space、令牌、配额、目录、检索这些治理活儿走智能体桶专属 API。各干各的,互不添乱。
三、上手实测:我的空间布局与真实手感
好产品得用起来才见真章。
我的实际开通操作过程如下:

前往授权,同意授权:

授权后确认创建。
创建智能体桶子。


然后创建空间:


空间创建好以后就可以直接用了,整个过程只需要1-2分钟就完成了,非常快!
在自己的空间中可以直接上传文件和文件夹。操作流畅,可以建立多个空间,有序管理,每个空间存储动态伸缩,空间中可以上传文件和文件夹,非常便捷。
单个上传文件效果:

上传文件夹效果:


上传文件夹后的效果,跟文件一样也是几乎秒传,我觉得比云盘还快:


然后还可以创建多个空间:

多个文件夹效果:

真操作下来,体验我只能说三个字:相当顺。建空间是秒级响应,配额随手调,存多少自己定,这就是传说中的"动态伸缩"。上传文件、上传文件夹都是拖拖拽拽的事,批量素材往里一扔,它自己就归位了。最让我惊喜的是秒传去重,同一个素材传第二遍直接秒过,连流量都懒得浪费,一碗水端得明明白白。
以前用 COS 控制台,我总觉得自己在开叉车,一趟一趟搬。现在用智能体桶,我更像在打乐高,一块一块拼。同一个桶,各空间各过各的小日子,谁也不打扰谁。这种感觉,懂的都懂。
四、代码动手:S3 兼容接口与媒体处理
我来跟SMH打通一下,需要配置key:
找到SMH接入参数

获取后配置到本地:

光说不练假把式。Agent Bucket 的 S3 入口和标准 COS 长得一模一样,拿以前的 SDK 代码直接就能跑。比如列一个 Space 下的对象:
GET /?prefix=player-demo%2F&max-keys=20 HTTP/1.1
Host: smh2rtrl15tvo0am-1330971775.cos.ap-chengdu.myqcloud.com
Authorization: q-sign-algorithm=sha1&...
Accept: application/xml
关键就一句话:对象 Key 以 SpaceId 当第一层前缀,标准对象操作和 Space 里的文件路径就对齐了。签名照旧由服务端出,或者用临时密钥。
Node 侧的写法也没啥新花样,拿旧项目的 cos-nodejs-sdk-v5 直接换桶名就行:
const COS = require('cos-nodejs-sdk-v5');
const cos = new COS({
SecretId: process.env.TENCENT_COS_SECRET_ID,
SecretKey: process.env.TENCENT_COS_SECRET_KEY,
});
// 列出 game-testwar 空间下的素材
cos.getBucket({
Bucket: 'smh2rtrl15tvo0am-1330971775',
Region: 'ap-chengdu',
Prefix: 'game-testwar/',
}, (err, res) => {
if (err) console.error('炸了:', err);
else console.log(res.Contents);
});
然后,让Workbuddy自动化测试结果执行如下:

形成测试记录报告,就让AI测一下运行体验,就能知道性能了。


媒体处理这块真的是更省心了。之前 WorkBuddy 里那套 CI 参数照搬就能用,签名 URL 后面拼一段参数,缩略图、水印、WebP 全在云端实时搞定,本地一张图都不用下载。
数据万象的活儿,智能体桶一样接得住。我 WorkBuddy 里的 game-asset-cos Skill 也还活着,对话里说一句"给这批图加水印、出缩略图、建画廊",它自己就把流水线跑完了。感觉就像给老伙计换了台新发动机,油门一踩,还是那个味。
五、性能分析
光有空间不办事,等于买了键盘不敲字。我拿真实需求跑了三个场景,个个都有说法。
场景一:多 Agent 协同生产素材。我用 WorkBuddy 批量生成 16-bit 像素风素材,两个生成 Agent 各占一个工作台空间,产出的中间结果互不串味。质检 Agent 在隔壁工位,读工作台、打标、筛选,合格的往 game-testwar 公共区归档。整个过程各 Agent 的空间配额独立,就算某个 Agent 疯产出,也顶多撑爆自己的小仓库,伤不到别人。
场景二:共享空间加私有隔离。game-testwar 是团队的公共资产区,大家都能看。player-demo 是某个玩家的私人小天地,别人碰都碰不着。以前这种"既要共享又要隔离"的需求,我得在业务代码里小心翼翼地维护前缀白名单,现在存储层直接给你焊死了,我甚至想给产品经理磕个头。
场景三:游戏热更新。运营要换素材,直接往 ops-hotfix 空间丢新包,客户端拉 manifest 对比版本号,增量下载完事。秒传去重这时候特别香,多端发布同一份素材只存一份,省下的都是白花花的银子。
这三个场景跑下来,我对"每个 Agent 一个 Space"这句口号有了新认识。它不只是产品宣传语,更是把"多租户安全"从开发者的心头大石,变成了系统的出厂设置。
性能画像一句话总结:
读 < 写 < 控制面首调,隔离零开销、拒绝比允许更快 —— 存储性能与普通 COS 同基线,溢价全在"多租户安全的零成本化"。
🔑 五个关键分析结论
| 结论 | 数据支撑 | |
|---|---|---|
| 1 | 延迟瓶颈是 RTT 不是带宽 | 16KB hero.png=1047ms vs 31KB Common.png=345ms,大小与耗时无关;175B 小文件也有 ~300ms RTT 底价 |
| 2 | 秒传省的是流量,不只是时间 | 1068ms → 571ms(-47%),但 571ms 仍高于小文件基线,说明去重有校验成本 |
| 3 | 拒绝比允许快 53% | 越权 403 = 129ms vs 正常列表 200 = 272ms → 权限校验在存储层前置,隔离零成本 |
| 4 | 控制面冷热差异明显 | 首调 admin 令牌 382ms(含 TLS)→ 预热后稳定 126~174ms;空间创建 140~279ms,秒级可批量建 5~10 个空间 |
| 5 | 双入口一致性即时 | COS PUT 完成 → SMH 133ms 内可见,无同步等待 |
总的来说,我觉得实测暴露了两条待打通的"断裂链路":一是 CI 媒体处理网关直接返回 501,智能体桶暂不支持通过 COS 域名实时调用数据万象的图片处理,只能退回"本地先处理、再上传多规格"的笨办法,等于每次多付一次处理加一次上传的成本;二是 SMH 分享服务默认未开通(403 ShareServiceDisabled),画廊公开访问只能降级成 2 小时有效的 COS 签名 URL,且需服务端定期刷新——属于产品待完善项,而非架构缺陷。
针对整体性能,六条建议按性价比排序:最值得做的是批量上传改并发(5~10 路并发即可把 12 个文件从串行 5.5 秒压到约 1.5 秒,提速 3.6 倍)与复用连接/长生命周期令牌(首调 382ms 降到预热后 ~130ms 档);其次是避开小文件 RTT 底价——175B 的 manifest 也要 ~300ms,批量小文件建议合并打包;秒传去重则优先用于大文件(1MB+ 省 47% 时间,小文件收益有限);媒体处理可绕行走 SMH 媒体库 API;分享能力在产品开通前先用签名 URL 顶着。
**结论:**存储与隔离主链路性能充裕、架构干净,短板全在 CI 与分享两条增值链路上,且都有明确的绕行方案,不影响主线可用性。
六、槽点、建议与总结
夸完了,也该说说槽点了。产品虽香,但还没到满分。
主要建议是UI操作方面的,建议应该丰富存储桶管理功能,比如文件和文件夹改名和拖拽排序等贴心实用人性化小功能。目前对这块的功能还是没充分开发出来。
然后,报一个发现的Bug (干货反馈):
智能体桶的 COS 网关不支持数据万象 CI 实时处理——附加 imageMogr2 参数返回 501 NotImplemented,与普通 COS 行为不一致。我已把复现脚本和错误 XML 记录在案。
尝试在签名 URL 上附加数据万象处理参数(缩略图 + WebP 转换):
/ci-process=imageMogr2/thumbnail/!200x200r/format/webp/quality/85/
返回信息如下:

我的结论是:智能体桶的 COS 访问网关当前不支持通过 COS 域名直接调用数据万象 CI 的实时图片处理。这与普通 COS 桶(imageMogr2 开箱即用)行为不一致。
临时绕行方案:
- 本地/服务端处理后上传多规格版本(缩略图、WebP 预先生成)
- 走 SMH 媒体库 API 的媒体处理能力(SMH 侧提供)
- 等待产品侧开放 gateway 透传 CI 能力
总结一下我的心路历程。COS 是一台好车,我开了很久,但它没有"独立车位"。Agent Bucket 给我发了一排独立车位,每个 Agent 一个,互不占道。对于游戏团队、AI 应用开发者、网盘类产品,这套"Space 化"的思路我是真心推荐。
说句实在话,以前我管素材,靠的是文件夹命名规范和团队自觉。现在我管素材,靠的是存储层的硬隔离,心里踏实多了。
把图片处理交给腾讯云,把空间治理交给智能体桶,把操作交给 WorkBuddy,我只需要负责继续做游戏。就这日子,给个神仙都不换。

202

被折叠的 条评论
为什么被折叠?



