十分钟从零发布作品到华为云作品陈列馆——CodeArts Agent 实战

举报
yd_273530197 发表于 2026/10/16 23:34:50 2026/10/16
【摘要】 前言华为云高校运营平台/作品陈列馆是展示技术作品、获取成长积分的重要渠道。但传统发布流程涉及 IAM 委托配置、STS 凭证生成、封面截图、详情打包等多个环节,手动操作容易出错。本文分享如何借助 CodeArts Agent 和发布技能,十分钟内从零完成一个前端项目并发布到陈列馆。一、环境准备1.1 安装华为云 KooCLI(hcloud)hcloud 是华为云命令行工具,用于 IAM 域解...

前言

华为云高校运营平台/作品陈列馆是展示技术作品、获取成长积分的重要渠道。但传统发布流程涉及 IAM 委托配置、STS 凭证生成、封面截图、详情打包等多个环节,手动操作容易出错。本文分享如何借助 CodeArts Agent 和发布技能,十分钟内从零完成一个前端项目并发布到陈列馆。

一、环境准备

1.1 安装华为云 KooCLI(hcloud)

hcloud 是华为云命令行工具,用于 IAM 域解析和 STS 凭证生成:

powershell -ExecutionPolicy Bypass -File install-hcloud.ps1

安装完成后,配置 AK/SK 访问密钥(在华为云控制台「我的凭证 → 访问密钥」创建):

hcloud configure set --cli-region=cn-north-4   --cli-access-key=<你的AK>   --cli-secret-key=<你的SK>

1.2 创建自委托 SELF_VERIFY

发布作品需要通过 STS 临时凭证验证调用者身份,这要求预先创建自委托:

# 获取账号 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 供技能自动提取作品名:

---
name: 番茄钟计时器
description: 基于番茄工作法的专注计时工具
---

# 番茄钟计时器
...

初始化 Git 仓库并推送到 GitCode:

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

node scripts/resolve-domain.mjs
# 输出: #domain=<id> name=<name>

3.2 生成 STS 临时凭证

python scripts/gen_sts.py --account <DomainID>
# 生成 sts-creds.json(含临时 AK/SK + SecurityToken)

STS 凭证有效期 900 秒,技能支持 401 自动刷新,无需担心过期。

3.3 启动项目并生成封面

# 启动本地服务器
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 生成详情包

# 生成架构图
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 选择活动并发布

获取可投稿的活动列表,选择目标活动后执行发布:

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 的发布技能,将原本需要手动操作多个控制台的流程自动化为一条命令,大幅降低发布门槛。每日完成任务获取成长积分,积累技术作品,一举两得。

作品地址:华为云作品陈列馆

代码仓库:GitCode - pomodoro-timer

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。