Huawei Obs logo

Huawei Obs

Organization
huaweicloud
huawei-obs

Use when creating, configuring, or managing OBS buckets and objects on Huawei Cloud. Covers bucket creation, lifecycle policies, versioning, static website hosting, CORS, access control (IAM/bucket policy/ACL), cross-region replication, event notifications, and presigned URLs. Triggers on: OBS, bucket, object storage, lifecycle, versioning, static website, CORS, presigned, replication, 浏览器直传, browser direct upload, 预签名上传, 直传 OBS. NOT for: EVS block storage (use huawei-ecs), SFS file storage, CBR backup (use huawei-cbr).

Overview

Publisherhuaweicloud
Repositoryhuaweicloud-devkit
Skill namehuawei-obs
Stars
70
Forks
12
Bundled files
5
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 5 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by huaweicloud on GitHub. Read the source before you install it.

Installation

Install the Huawei Obs AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/huaweicloud/huaweicloud-devkit/tree/main/plugins/huaweicloud-core/skills/huawei-obs
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/huaweicloud/huaweicloud-devkit.git /tmp/huaweicloud-devkit
mkdir -p .claude/skills
cp -r /tmp/huaweicloud-devkit/plugins/huaweicloud-core/skills/huawei-obs .claude/skills/huawei-obs
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Huawei Obs in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Huawei Obs on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Huawei Obs is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Huawei Cloud OBS

STOP - Do not answer from general knowledge. Follow the procedure below.

Routing Guard: Deploy vs Store

  • If the developer's goal is to deploy, host, or preview a web app / static website (temporary hosting, quick preview), do NOT default to OBS. You MUST present deployment-target options via the question tool with the sandbox first: ① huawei-sandbox (recommended), ② OBS static hosting (需提前准备好自定义域名 — the default OBS endpoint does not support HTTPS for static hosting), ③ ECS (需搭配弹性公网IP/EIP 才能公网访问), ④ CCE. Ask: "建议优先部署到沙箱(临时运行环境,可预览访问),也可选 OBS 静态托管(需提前准备好自定义域名)、ECS(需搭配弹性公网IP/EIP)或 CCE,你想部署到哪里?"
  • Proceed with OBS only when the developer explicitly names OBS, or selects OBS through the question gate after being asked. Long-term static hosting / CDN / file storage intent alone is NOT a named target and cannot bypass the gate — still present the options via the question tool first. NEVER infer or default the target when it is unstated. Deployment intent proceeding on OBS is a resource purchase: load huawei-iac for orchestration (cost+balance gate, batch approval, state tracking, ordered destroy) - this skill then supplies the bucket/object commands. Sandbox choice (huawei-sandbox) bypasses iac - no purchase involved.
  • OBS is a storage service; it is not a general web-hosting default.

Critical: OBS Command Syntax

KooCLI OBS uses obsutil-style commands, NOT API-style operations. Always run hcloud OBS help (no --) before constructing commands:

bash
hcloud OBS help           # NOT --help
hcloud OBS help <command> # e.g. hcloud OBS help mb
Wrong (API-style)Correct (obsutil-style)
OBS CreateBucketOBS mb obs://<bucket>
OBS PutObjectOBS cp <file> obs://<bucket>/
OBS DeleteBucketOBS rm obs://<bucket> -r

Overview

Domain expertise for Huawei Cloud Object Storage Service (OBS). Covers bucket/object lifecycle, access control, static website hosting, and presigned URLs.

Critical Warnings

TrapWhy
Bucket name is globalAll users share bucket namespace. Always use a unique name: {prefix}-{timestamp} (e.g. mybucket-20260810155048)
Three-layer permissionsIAM > Bucket Policy > ACL. Most restrictive wins
Versioning is irreversibleOnce enabled, cannot be disabled, only suspended
OBS uses AK/SK directlyNOT IAM tokens. Auth errors mean check AK/SK validity
Static website via CLI missingKooCLI OBS lacks website config. Use huaweicloud_obs_set_website_config MCP tool (handles AWS4 signing internally) or console
OBS needs separate cred confighcloud configure is NOT enough for OBS. Before any OBS operation, call huaweicloud_setup_obs_config to sync credentials from hcloud profile.
obsutil interactive promptscp/rm without -f causes "Please input (y/n)" → Agent hangs (TIMEOUT). Always use -f for non-interactive.
Directory upload adds prefixcp <dir>/ obs://<bucket>/ -r puts files under bucket/<dir>/.... Use -flat for root-level files (static sites). Preview with -dryRun first.

OBS Credential Setup (Required Before First Use)

KooCLI OBS uses a separate config file (~/.obsutilconfig), NOT ~/.hcloud/config.json. All OBS commands fail with credential errors until this is configured.

In-session bootstrap (recommended): Call huaweicloud_setup_obs_config — it syncs AK/SK from the active hcloud profile automatically. No manual key entry needed. Run this once per session before any OBS command.

CLI fallback (if MCP tools unavailable):

bash
hcloud OBS config -e=<endpoint> -i=<AK> -k=<SK> -t=token

huaweicloud_setup_obs_config should be called at the start of every OBS task — never assume credentials are pre-configured from a previous session.

Common Workflows

TaskCommand
Create buckethcloud OBS mb obs://<bucket> -location=<region>
List buckets/objectshcloud OBS ls [obs://<bucket>]
Upload filehcloud OBS cp <file> obs://<bucket>/<key>
Upload directory (recursive)hcloud OBS cp <dir>/ obs://<bucket>/ -r -f -flat
Download objecthcloud OBS cp obs://<bucket>/<key> <local-path>
Set bucket ACLhcloud OBS chattri obs://<bucket> -acl=public-read
Set object ACLhcloud OBS chattri obs://<bucket>/<key> -acl=public-read
Set lifecyclehcloud OBS lifecycle obs://<bucket> -method=put -localfile=<json>
Set bucket policyhcloud OBS bucketpolicy obs://<bucket> -method=put -localfile=<json>
Set CORShuaweicloud_obs_set_cors (set/get/delete) — KooCLI OBS has no cors subcommand; the tool does AWS4-signed PUT /?cors internally. allowedMethod MUST include HEAD
Delete buckethcloud OBS rm obs://<bucket> -r (must be empty)
Presigned URLhcloud OBS sign obs://<bucket>/<key> -e=<seconds>
Object metadatahcloud OBS stat obs://<bucket>/<key>

Static Website Deployment Workflow

See references/static-website.md for the full end-to-end workflow: Build → Create bucket → Upload → Set bucket ACL → Set object ACL → Configure website (REST API/console)

KooCLI OBS does NOT support SetBucketWebsite. Use the huaweicloud_obs_set_website_config MCP tool (handles AWS4 signing internally, no manual signature needed) or the Huawei Cloud console.

Single-File Quick Share

See references/single-file-share.md for the full workflow to host one file and get a shareable link in seconds:

  • Private, time-limited: hcloud OBS sign obs://<bucket>/<key> -e=<seconds> (max 7 days)
  • Public, permanent: hcloud OBS cp <file> obs://<bucket>/<key> -f + hcloud OBS chattri obs://<bucket>/<key> -acl=public-read, then share https://<bucket>.obs.<region>.myhuaweicloud.com/<key>

Storage Classes

ClassUse CaseMin StorageRetrieval Fee
STANDARDFrequently accessedNoneNo
STANDARD_IAInfrequent access30 daysYes
ARCHIVELong-term archive90 daysYes (hours)

Troubleshooting

ErrorRoot Cause -> Fix
AccessDenied on bucketIAM/bucket policy/ACL conflict -> Check all three layers
BucketAlreadyExistsName taken globally -> Generate unique name with timestamp suffix: {prefix}-{yyyymmddHHMMSS}
NoSuchKeyObject doesn't exist or wrong region -> Verify key and region
InvalidAccessKeyIdOBS uses AK/SK directly -> Verify AK/SK validity, OBS endpoint, OBS permissions
EntityTooLargeSingle PUT limit 5GB -> Use multipart upload
OBS --help failsKooCLI OBS uses help not --help -> Run hcloud OBS help
Configuration file is not well-formed~/.obsutilconfig was generated by a non-standard path (CRLF line endings or field-order differences). Even hcloud OBS --help fails. Rebuild it with hcloud OBS config -e=<endpoint> -i=<AK> -k=<SK> (or huaweicloud_setup_obs_config) -> retry

Security Considerations

  • MUST block public access by default
  • MUST use HTTPS-only for buckets
  • SHOULD enable access logging for audit
  • SHOULD rotate presigned URL expiry (max 7 days)
  • MUST NOT store AK/SK in bucket policies

Cross-Skill References

  • EIP: See huawei-vpc for public network access
  • DEW: See huawei-cloud-dew-key-management for secret management

References

  • OBS Docs: https://support.huaweicloud.com/obs/
  • Static website: references/static-website.md
  • Single-file share: references/single-file-share.md
  • Lifecycle: references/bucket-lifecycle.md
  • Browser direct upload & CORS: references/common-pitfalls.md

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Huawei Obs AI skill do?

Use when creating, configuring, or managing OBS buckets and objects on Huawei Cloud. Covers bucket creation, lifecycle policies, versioning, static website hosting, CORS, access control (IAM/bucket policy/ACL), cross-region replication, event notifications, and presigned URLs. Triggers on: OBS, bucket, object storage, lifecycle, versioning, static website, CORS, presigned, replication, 浏览器直传, browser direct upload, 预签名上传, 直传 OBS. NOT for: EVS block storage (use huawei-ecs), SFS file storage, CBR backup (use huawei-cbr).

Why use Huawei Obs on TypingMind?

Because you install it once and use it with any model. Huawei Obs is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Huawei Obs in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/huaweicloud/huaweicloud-devkit/tree/main/plugins/huaweicloud-core/skills/huawei-obs. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Huawei Obs?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Huawei Obs?

As many as you like. As long as a model supports skills, you can use Huawei Obs with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Huawei Obs AI skill free?

Yes. It is published on GitHub by huaweicloud under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇