后端与接口
用华为云 CLI 查询 OBS 桶容量…
在已安装并配置 hcloud/obsutil 的前提下,查询华为云 OBS 桶列表、容量、对象数、内外网下载流量与请求总数并做月环比对比。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
用华为云 CLI 查询 OBS 桶容量、特定
解决思路
- 先做前置检查:运行 `hcloud version` 确认 hcloud/KooCLI >= 3.2.0;运行 `obsutil version` 确认 obsutil >= 5.5.0(OBS 桶列表依赖 obsutil)。
- 检查 obsutil 凭证是否配置:运行 `hcloud obs ls -limit=1`,若返回 `Please set ak, sk and endpoint in the configuration file!` 或 `InvalidAccessKeyId`,说明未配置。
- 凭证未配置时,让用户在自己的终端执行 `hcloud obs config -i=<YourAK> -k=<YourSK> -e=obs.<Region>.myhuaweicloud.com`(例如广州:`-e=obs.cn-south-1.myhuaweicloud.com`),配置完成后重试;常用 Endpoint:cn-north-4 → obs.cn-north-4.myhuaweicloud.com,cn-east-3 → obs.cn-east-3.myhuaweicloud.com,cn-south-1 → obs.cn-south-1.myhuaweicloud.com,cn-southwest-2 → obs.cn-southwest-2.myhuaweicloud.com。
- 检查 CLI 配置:运行 `hcloud configure list`,确认输出包含有效配置(AK/SK、IAM 等);若无有效凭证则停止。
- 凭证安全规则:禁止读取、回显或打印 AK/SK;禁止在对话中要求用户提供 AK/SK;禁止用 `hcloud configure set` 传明文凭证;禁止接受用户在对话中直接给出的 AK/SK;只允许从环境变量或已配置的 CLI 配置文件读取凭证。
- 若用户直接在对话中提供 AK/SK:立即停止执行任何命令,礼貌拒绝并返回安全提示,引导其使用交互式配置 `hcloud configure` 或环境变量 `export HUAWEICLOUD_SDK_AK=<...>` / `export HUAWEICLOUD_SDK_SK=<...>`,在凭证配置完成前不继续执行任何华为云操作。
- 严格遵守禁止操作:不得执行 `DeleteBucket` / `obsutil rm -bucket`、`DeleteObject` / `obsutil rm`、`DeleteObjects` / `obsutil rm -r`、`obsutil rm -bucket -r`;若用户请求删除,拒绝并告知其改用华为云 OBS 控制台或手动使用 obsutil。
- hcloud 参数格式:所有参数必须使用 `--param=value` 等号连接格式,不支持空格分隔(正确:`hcloud OBS ListBuckets --region=cn-south-1`;错误:`hcloud OBS ListBuckets --region cn-south-1`)。
- 注意 CES 模块不支持 `--User-Agent` 参数,追加会导致 `Invalid parameter: User-Agent`;OBS 模块命令可带 User-Agent。
- 任务一(列出桶及容量/对象数):先用 `hcloud obs ls` 列出所有桶(可用 `grep` 按 region 过滤),再用 CES 容量指标或 OBS API 查询桶容量与对象数。
- 查询桶容量与对象数:使用 `hcloud OBS GetBucketStorageInfo --region=<R> --bucket=<B>`;若不被支持,回退用 `obsutil ls obs://<B> -limit=0 -s`。
- 任务二(查询内外网下载流量并做月环比):使用 `hcloud CES ShowMetricData --region=<R> --namespace=SYS.OBS --metric_name=<M> --dim.0=bucket_name,<B> --period=86400 --filter=<F> --from=<ms> --to=<ms>`,外网下载流量指标为 `download_traffic_extranet`、内网为 `download_traffic_intranet`,`--filter=sum`。
- 任务三(查询请求总数并做月环比):通过 CES ShowMetricData 分别查询 GET/PUT/POST/DELETE/HEAD 请求数(指标 `get_request_count` / `put_request_count` / `post_request_count` / `delete_request_count` / `head_request_count`,`--filter=sum`)后求和,OBS 没有单一的 request_count 指标。
- 桶容量指标:`--metric_name=capacity_total`,`--filter=average`。
- 执行前必须与用户确认参数,禁止猜测:`--region`(必填,如 cn-south-1、cn-north-4)、桶名(必填,维度格式 `--dim.0=bucket_name,<BucketName>`)、时间范围(必填)、obsutil 凭证(必查)。
- 时间范围必须精确匹配用户措辞:"this month" = 当月 1 日 00:00:00 ~ 现在;"last 30 days"/"past month" = 现在 - 30 天 ~ 现在;"last month" = 上月 1 日 00:00:00 ~ 上月最后一天 23:59:59;具体日期范围按用户指定的起止时间。
- 可选参数:`--direction`(流量方向 download/upload/both,默认 download)、`--include-errors`(是否同时查询 4xx/5xx 错误请求数,默认 false)。
- 使用脚本 `python3 scripts/obs_traffic_stats.py --region <R> --bucket <B> (--period <P> | --from <D> --to <D>) [--direction download|upload|both]` 做带月环比的流量统计,例如 `--period last_30d`、`--period this_month --direction both`、`--from 2026-04-20 --to 2026-05-20`。
- 使用脚本 `python3 scripts/obs_request_stats.py --region <R> --bucket <B> (--period <P> | --from <D> --to <D>) [--include-errors]` 做带月环比的请求统计,例如 `--period last_30d`、`--period this_month --include-errors`、`--from 2026-04-20 --to 2026-05-20`。
- 确保 IAM 用户具备最小权限:`obs:bucket:list`(列出桶)、`obs:bucket:get`(获取桶属性/容量/对象数)、`obs:object:get`(读取对象信息)、`ces:metric:get`(查询 CES 监控指标)。
- 快速验证:`hcloud obs ls -limit=1` 检查桶列表、`obsutil ls -limit=1` 检查 obsutil 配置、分别用 `--period last_30d` 运行两个脚本验证流量与请求统计。
适用边界 · 注意事项
- 未安装或版本不满足 hcloud >= 3.2.0 / obsutil >= 5.5.0,或 obsutil 凭证未配置时不可执行 OBS 操作。
- 用户要求删除桶、删除对象、批量删除对象或清空桶时,本技能一律拒绝执行。
- CES 模块命令不可追加 `--User-Agent` 参数,否则报 Invalid parameter: User-Agent。