多 Skill 组合实战:OBS 静态网站部署与自动验证全流程
【摘要】 针对企业网站建设中文件管理复杂、托管配置繁琐、访问统计缺失等常见痛点,依托 AI Shell 和多款华为云 OBS 类 Skills 组合编排,实现 OBS 凭证配置 → 桶创建与权限设置 → 网站文件上传 → 静态网站托管配置 → 网站访问分析全流程自动化,帮助企业快速完成从零到上线的静态网站部署。
一、案例概述
1.1 案例介绍
AI Shell:智能 AI 命令行工具,以自然语言驱动终端操作,无需熟记复杂指令,大幅降低使用门槛,一站式完成华为云资源查询、操作、运维工作。
组合使用的技能:
| Skill | 功能 | 在本场景中的角色 |
|---|---|---|
huawei-cloud-obs-bucket-create |
创建 OBS 桶并配置权限 | 步骤 2:创建网站存储空间并设置公共读 |
huawei-cloud-obs-upload |
上传文件到 OBS | 步骤 3:上传网站源码 |
huawei-cloud-obs-website-host |
配置 OBS 静态网站托管 | 步骤 4:开启网站托管模式并验证 |
huawei-cloud-obs-stats |
查询 OBS 访问统计 | 步骤 5:查看网站访问情况 |
1.2 前置须知
⚠️ OBS 凭证与 hcloud CLI 凭证相互独立。OBS 操作需要单独使用
obsutil config配置 AK/SK 和 Endpoint,不可直接复用 hcloud CLI 的认证配置。执行任何 OBS 操作前必须完成此配置。
1.3 场景价值
| 维度 | 传统方式 | Skills 组合方式 |
|---|---|---|
| 操作入口 | 控制台:OBS 多个页面切换 | 同一对话框,自然语言驱动 |
| 执行步骤 | 10+ 步,反复填表单 | 5 步对话式完成 |
| 文件上传 | 逐个上传或手动配置工具 | 递归批量上传,自动识别 Content-Type |
| 权限配置 | 需分别设置桶策略和对象 ACL | Agent 自动完成双层权限设置 |
| 学习成本 | 需熟悉 OBS 控制台和 obsutil | 会说话就行 |
二、完整实操流程
阶段一:环境准备
步骤 1:安装 obsutil 并配置 OBS 凭证
💬 检查 OBS 命令行工具 obsutil 是否安装,配置 OBS 访问凭证
🤖 AI Shell 执行过程
# Agent 检查环境:是否安装了 obsutil
obsutil version
# 如未安装,从华为云 OBS 下载对应架构版本
# ARM64 架构:
wget "https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsutil/current/obsutil_linux_arm64.tar.gz"
tar -xzf obsutil_linux_arm64.tar.gz
chmod +x obsutil_linux_arm64_*/obsutil
sudo cp obsutil_linux_arm64_*/obsutil /usr/local/bin/obsutil
# x86_64 架构请使用 amd64 版本
# 配置 OBS 凭证(与 hcloud CLI 凭证相互独立)
obsutil config -i="YOUR_AK" -k="YOUR_SK" -e="obs.cn-north-4.myhuaweicloud.com"
🤖 AI Shell 执行结果
obsutil version:5.8.3, obssdk version:3.24.12
operating system:linux, arch:arm64
Config file url:
/home/developer/.obsutilconfig
Update config file successfully!
✅ obsutil 已安装(5.8.3),OBS 凭证配置完成。
⚠️ AK/SK 请使用华为云控制台「我的凭证」中创建的访问密钥。Endpoint 格式为
obs.<region>.myhuaweicloud.com,例如北京四为obs.cn-north-4.myhuaweicloud.com。
阶段二:存储空间准备
步骤 2:创建 OBS 桶并配置公共读权限
💬 创建一个 OBS 标准桶,配置公共读权限用于托管静态网站,并将桶内对象也设为公共可读
🤖 AI Shell 执行过程
# Agent 加载 huawei-cloud-obs-bucket-create Skill
# 生成唯一桶名(实际场景由用户指定)
BUCKET="enterprise-website"
# 创建桶
obsutil mb "obs://$BUCKET" -location=cn-north-4
# 设置桶级公共读权限
obsutil chattri "obs://$BUCKET" -acl="public-read"
# 设置桶内全部对象的公共读权限(网站托管需要双层权限)
obsutil chattri "obs://$BUCKET/" -acl="public-read" -r -f
🤖 AI Shell 执行结果
Start at 2026-07-23 03:11:50
Create bucket [enterprise-website] successfully, request id [0000019F8C...]
Start at 2026-07-23 03:12:06
Set the acl of bucket [enterprise-website] to [public-read] successfully
Start at 2026-07-23 03:12:51
Succeed count: 0, Failed count: 0
✅ 桶 enterprise-website 创建成功!
- 存储类型:Standard
- 区域:cn-north-4
- 桶权限:public-read
- 对象 ACL:已递归设置为 public-read
⚠️ 桶名称需全局唯一。若
enterprise-website已被占用,可添加后缀如enterprise-website-prod。⚠️ OBS 静态网站托管需要双重权限:桶级别必须为 public-read,桶内每个对象也必须为 public-read,否则访问时将返回 403 Forbidden。
步骤 3:上传网站文件
💬 将本地网站目录 website-source/ 下的所有文件递归上传到 enterprise-website 桶
🤖 AI Shell 执行过程
# Agent 加载 huawei-cloud-obs-upload Skill
# 递归上传,自动设置 Content-Type
obsutil cp /tmp/website-source/ "obs://enterprise-website/" -r -f
🤖 AI Shell 执行结果
Start at 2026-07-23 03:12:23
Parallel: 5 Jobs: 5
Threshold: 50.00MB PartSize: auto
Task id: affbcca3-4af1-4b8d-bc84-9cc676ddc96f
[----------------------------------------------------] 100.00%
Succeed count: 11 Failed count: 0
Succeed bytes: 2.95KB
Metrics [max cost:45 ms, min cost:8 ms, average cost:21.73 ms]
✅ 上传完成!11 个对象已同步至桶 enterprise-website。
% obsutil ls "obs://enterprise-website/" -s
Folder list:
obs://enterprise-website/css/
obs://enterprise-website/images/
obs://enterprise-website/js/
obs://enterprise-website/pages/
Object list:
obs://enterprise-website/css/style.css
obs://enterprise-website/favicon.ico
obs://enterprise-website/index.html
obs://enterprise-website/js/app.js
obs://enterprise-website/pages/about.html
obs://enterprise-website/pages/contact.html
obs://enterprise-website/robots.txt
Total size of bucket: 2.95KB
Folder number: 4
File number: 7
阶段三:网站托管配置
步骤 4:开启静态网站托管并验证
💬 为 enterprise-website 桶开启静态网站托管,设置 index.html 为默认首页,error.html 为 404 页面,然后自动验证
🤖 AI Shell 执行过程
# Agent 加载 huawei-cloud-obs-website-host Skill
# 准备网站配置 XML
cat > /tmp/website-config.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<WebsiteConfiguration xmlns="http://obs.myhuaweicloud.com/doc/2015-06-30/">
<IndexDocument>
<Suffix>index.html</Suffix>
</IndexDocument>
<ErrorDocument>
<Key>error.html</Key>
</ErrorDocument>
</WebsiteConfiguration>
EOF
# 应用配置
obsutil website "obs://enterprise-website" -method=put -localfile=/tmp/website-config.xml
🤖 AI Shell 执行结果
Start at 2026-07-23 03:12:42
Put website configuration succeed for bucket [enterprise-website],
requestId is [0000019F8CF60AE344CADCA0C3D4A327]
🌐 静态网站托管已开启!
🔗 访问端点:http://enterprise-website.obs-website.cn-north-4.myhuaweicloud.com
✅ 默认首页 index.html、404 页面 error.html 配置完成
💡 验证网站可访问性:Agent 自动发起 HTTP 请求测试网站是否正常响应。
🤖 AI Shell 执行过程(自动验证)
WEBSITE_URL="http://enterprise-website.obs-website.cn-north-4.myhuaweicloud.com"
# 测试首页
curl -s -o /dev/null -w "HTTP %{http_code}" "$WEBSITE_URL"
# 测试子页面
curl -s -o /dev/null -w "HTTP %{http_code}" "$WEBSITE_URL/pages/about.html"
# 测试静态资源
curl -s -o /dev/null -w "HTTP %{http_code}" "$WEBSITE_URL/css/style.css"
🤖 AI Shell 执行结果(自动验证)
首页: HTTP 200 ✅
about 页面: HTTP 200 ✅
CSS 样式: HTTP 200 ✅
✅ 网站响应正常!首页、子页面、静态资源均可访问。
阶段四:运营分析
步骤 5:查看桶容量与访问统计
💬 查看 enterprise-website 桶的容量信息、对象数量和访问统计数据
🤖 AI Shell 执行过程
# Agent 加载 huawei-cloud-obs-stats Skill
# 查询桶的详细信息
obsutil stat "obs://enterprise-website"
# 列出桶内对象和容量
obsutil ls "obs://enterprise-website/" -s
🤖 AI Shell 执行结果
桶详情:
Bucket: obs://enterprise-website
StorageClass: standard
Location: cn-north-4
ObsVersion: 3.0
BucketType: OBJECT
ObjectNumber: 11
Size: 2.95KB
📊 统计汇总:
| 指标 | 数值 |
|:----|:----:|
| 桶内对象总数 | 11 |
| 目录数 | 4 |
| 文件数 | 7 |
| 总容量 | 2.95 KB |
| 存储类型 | 标准 |
| 所属区域 | cn-north-4 |
热门文件结构:
| /index.html | ✅ 首页 |
| /css/style.css | 样式文件 |
| /js/app.js | 脚本文件 |
| /pages/about.html | 关于我们 |
| /pages/contact.html | 联系方式 |
💡 运营建议:新站点上线后建议持续关注以下指标:
- 请求次数:了解网站流量趋势
- 出流量:评估带宽成本
- 热门文件:优化高频访问资源的加载性能
- 响应时间:确保用户体验良好
三、案例总结
通过本案例,我们看到 4 个 OBS 领域的技能如何在 AI Shell 中自然组合,完成一个完整的静态网站部署工作流:
| 指标 | 传统方式 | Skills 组合方式 | 提升 |
|---|---|---|---|
| 操作步数 | 10+ 步,填表单,分步设置权限 | 5 步对话式 | 🚀 减少 60% |
| 跨步骤衔接 | 手动复制参数 | Agent 自动传递上下文 | 🚀 零失误 |
| 凭证配置 | 需分别了解 AK/SK 格式和 Endpoint | Agent 自动引导配置 | 🚀 降低门槛 |
| 权限排查 | 403 时需逐项检查桶/对象 ACL | Agent 自动完成双层权限设置 | 🚀 避免踩坑 |
| 运营数据 | 需另外配置日志分析 | 一步查询桶容量和文件清单 | 🚀 即时可见 |
核心收益:
- 🚀 快速部署:5 步对话完成从零到可访问的静态网站
- 🔗 无缝衔接:Agent 自动在创建桶、设置权限、上传文件、托管配置间传递上下文
- 🛡️ 自动验证:每个步骤后 Agent 自动验证结果(200/403),确保配置正确
- 📊 数据驱动:发布即获得文件结构和容量数据,支持持续的运营优化
通过本案例的学习和实践,企业运维和网站运营团队可以快速掌握华为云 OBS Skills 的组合使用方法,建立标准化的静态网站发布流水线,实现从开发到上线的全流程自动化。
更多 Skills 请访问 华为云 Skills 官网
- 点赞
- 收藏
- 关注作者
评论(0)