十分钟从零发布作品到华为云作品陈列馆——CodeArts Agent 实战
【摘要】 ## 前言华为云高校运营平台/作品陈列馆是展示技术作品、获取成长积分的重要渠道。但传统发布流程涉及 IAM 委托配置、STS 凭证生成、封面截图、详情打包等多个环节,手动操作容易出错。本文分享如何借助 CodeArts Agent 和发布技能,十分钟内从零完成一个前端项目并发布到陈列馆。## 一、环境准备### 1.1 安装华为云 KooCLI(hcloud)hcloud 是华为云命令行工具...
## 前言
华为云高校运营平台/作品陈列馆是展示技术作品、获取成长积分的重要渠道。但传统发布流程涉及 IAM 委托配置、STS 凭证生成、封面截图、详情打包等多个环节,手动操作容易出错。本文分享如何借助 CodeArts Agent 和发布技能,十分钟内从零完成一个前端项目并发布到陈列馆。
## 一、环境准备
### 1.1 安装华为云 KooCLI(hcloud)
hcloud 是华为云命令行工具,用于 IAM 域解析和 STS 凭证生成:
```powershell
# 下载安装脚本自动安装
powershell -ExecutionPolicy Bypass -File install-hcloud.ps1
```
安装完成后,配置 AK/SK 访问密钥(在华为云控制台「我的凭证 → 访问密钥」创建):
```bash
hcloud configure set --cli-region=cn-north-4 \
--cli-access-key=<你的AK> \
--cli-secret-key=<你的SK>
```
### 1.2 创建自委托 SELF_VERIFY
发布作品需要通过 STS 临时凭证验证调用者身份,这要求预先创建自委托:
```bash
# 获取账号 Domain ID
hcloud IAM KeystoneListAuthDomains --cli-region=cn-north-4
# 创建自委托(委托方和被委托方都是自己)
hcloud IAM CreateAgency --cli-region=cn-north-4 \
--agency.name=SELF_VERIFY \
--agency.domain_id=<DomainID> \
--agency.trust_domain_id=<DomainID> \
--agency.description='自委托,用于生成最小权限STS凭证'
```
这是一次性配置,后续发布无需重复。
## 二、创建项目
以番茄钟计时器为例,创建一个纯前端项目:
```
pomodoro-timer/
├── index.html # 主页面
├── style.css # 样式表
├── script.js # 计时逻辑
└── README.md # 项目说明(含 frontmatter)
```
README.md 中添加 frontmatter 供技能自动提取作品名:
```markdown
---
name: 番茄钟计时器
description: 基于番茄工作法的专注计时工具
---
# 番茄钟计时器
...
```
初始化 Git 仓库并推送到 GitCode:
```bash
git init && git add -A && git commit -m "feat: 初始版本"
git remote add origin https://gitcode.com/<user>/pomodoro-timer.git
git push -u origin main
```
## 三、发布流程
### 3.1 解析 IAM Domain ID
```bash
node scripts/resolve-domain.mjs
# 输出: #domain=<id> name=<name>
```
### 3.2 生成 STS 临时凭证
```bash
python scripts/gen_sts.py --account <DomainID>
# 生成 sts-creds.json(含临时 AK/SK + SecurityToken)
```
STS 凭证有效期 900 秒,技能支持 401 自动刷新,无需担心过期。
### 3.3 启动项目并生成封面
```bash
# 启动本地服务器
python -m http.server 8101
# 生成封面(自动截图 + 合成 + 校验)
node scripts/build-cover.mjs \
--url "http://127.0.0.1:8101" \
--project-dir ./pomodoro-timer \
--title "番茄钟计时器" \
--out cover.png
```
封面生成技能内置多种布局策略,单页项目用单图布局,多页项目自动加入拼贴布局,概率等分布采样。
### 3.4 生成详情包
```bash
# 生成架构图
python scripts/generate_diagram.py \
--html diagram.html --out resources/architecture.png
# 打包详情 zip(README + 资源图片)
node scripts/build-detail-zip.mjs \
--readme detail-readme.md \
--resources resources/ \
--out detail.zip
```
### 3.5 选择活动并发布
获取可投稿的活动列表,选择目标活动后执行发布:
```bash
node scripts/publish-work.mjs publish-params.json
# 成功输出: workId, workUrl, reward
```
发布成功后即可获得成长积分(每日限领一次)。
## 四、关键技术点
### 4.1 STS 最小权限凭证
发布流程使用 STS 临时凭证而非永久 AK/SK,安全性更高:
- 临时凭证有效期 900 秒,过期自动刷新
- Session Policy 最小化,仅放行身份识别所需权限
- 永久密钥始终留在本地,不上传任何服务端
### 4.2 封面自动生成
封面生成是发布流程中最耗时的环节,涉及:
- Playwright 启动浏览器截图
- 字体门禁检查(CJK + Emoji 预装校验)
- 布局策略选择(单图/多图拼贴)
- 像素级字形校验(防止豆腐块)
技能内置门禁机制,任何一环失败都会阻止后续步骤,确保封面质量。
### 4.3 幂等发布
发布请求携带 Idempotency-Key(`gallery-publish-<domainID>-<timestamp>`),服务端据此去重。若发布后收到 409 DUPLICATE,说明已有同名作品,可选择改名重发。
## 五、总结
整个发布流程从环境准备到作品上线,核心步骤如下:
| 步骤 | 耗时 | 说明 |
|------|------|------|
| 环境准备 | 一次性 | hcloud + AK/SK + 自委托 |
| 创建项目 | ~5 分钟 | 编码 + Git 推送 |
| 解析 Domain + STS | ~10 秒 | 自动化 |
| 封面 + 详情包 | ~30 秒 | 自动化 |
| 发布 | ~5 秒 | 一键发布 |
借助 CodeArts Agent 的发布技能,将原本需要手动操作多个控制台的流程自动化为一条命令,大幅降低发布门槛。每日完成任务获取成长积分,积累技术作品,一举两得。
---
**作品地址**:[华为云作品陈列馆](https://gallery.developer.huaweicloud.com/gallery/005c644dce800000)
**代码仓库**:[GitCode - pomodoro-timer](https://gitcode.com/tyunh/pomodoro-timer)
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)