CommunityCodierung & Entwicklunggithub.com

huaweicloud/huawei-cloud-obs-website-host

Konfigurieren Sie das statische Website-Hosting von Huawei Cloud OBS mit dem Python SDK und einer benutzerdefinierten Domain. Verwenden Sie dies, wenn der Benutzer das OBS-Website-Hosting aktivieren oder reparieren, Index- oder Fehlerseiten festlegen, einen vorhandenen Bucket für den öffentlichen Website-Zugriff über eine benutzerdefinierte Domain freigeben oder diese Domain über Huawei Cloud DNS verbinden muss, wenn Huawei die Zone verwaltet.

Was ist huawei-cloud-obs-website-host?

Diese Skill-Fertigkeit konfiguriert das statische Website-Hosting für einen vorhandenen Huawei Cloud OBS Bucket mithilfe des OBS Python SDK. Sie aktiviert das Website-Hosting, legt Index- und Fehlerseiten fest, registriert eine benutzerdefinierte Domain für den Bucket und kann optional DNS-Einträge in Huawei Cloud DNS verwalten. Die Fertigkeit stellt sicher, dass die benutzerdefinierte Domain auf den OBS-Website-Endpunkt verweist, was aus Sicherheits- und Compliance-Gründen (z. B. ICP-Filing) zwingend erforderlich ist. Sie führt alle Schreibvorgänge aus, die sie verspricht – ohne Simulation oder Verzögerung – und überprüft die Ergebnisse nach der Ausführung. Sie unterstützt Plattformen wie Claude Code, Cursor und Codex, benötigt Python 3.10+, das `esdk-obs-python` Paket, `obsutil` und Anmeldeinformationen (AK/SK). Sie interagiert ausschließlich mit den vom Benutzer angegebenen Ressourcen und gibt keine Anmeldeinformationen an Dritte weiter.

Funktioniert mit~Claude Code~Codex CLI~Cursor
Part ofMobile
npx skills add https://github.com/huaweicloud/huaweicloud-skills/tree/HEAD/skills/storage/obs/huawei-cloud-obs-website-host

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Huawei Cloud OBS Website Host

Übersicht

Konfigurieren Sie einen vorhandenen Huawei Cloud OBS Bucket für das statische Website-Hosting mit dem Huawei Cloud OBS Python SDK und registrieren Sie eine benutzerdefinierte Domain für die Website.

Verwenden Sie diese Fertigkeit, wenn der Benutzer folgende Aktionen durchführen möchte:

  • Aktivieren oder Reparieren des statischen OBS-Website-Hostings
  • Festlegen eines Indexdokuments oder Fehlerdokuments
  • Die Website über eine benutzerdefinierte Domain, die auf den OBS-Website-Endpunkt verweist, erreichbar machen
  • Hinzufügen oder Reparieren einer benutzerdefinierten Domain, einschließlich Huawei Cloud DNS, sofern zutreffend
  • Diagnostizieren von 403-, 404- oder DNS-Problemen auf einer gehosteten OBS-Website

Wie das Ergebnis idealerweise aussieht

Diese Fertigkeit führt Schreibvorgänge aus: Sie aktiviert das statische Website-Hosting auf einem Bucket (setBucketWebsite) und registriert die erforderliche benutzerdefinierte Domain auf diesem Bucket (setBucketCustomDomain). Wenn der Benutzer dies wünscht, erstellt/aktualisiert sie auch DNS-Einträge. Diese Schreibvorgänge werden von den enthaltenen Skripten in dieser Sitzung ausgeführt – sie werden nicht simuliert, an den Benutzer delegiert oder durch schreibgeschützte Prüfungen ersetzt. Die Überprüfung läuft nach den Schreibvorgängen, um das Ergebnis zu bestätigen.

  • Das statische Website-Hosting auf dem Bucket wurde von dieser Fertigkeit aktiviert.
  • Der Bucket kann index.html über den Website-Endpunkt ausliefern.
  • Anonyme Benutzer können den Website-Inhalt lesen.
  • Ein fehlender Pfad gibt die konfigurierte Fehlerseite oder einen sauberen 404-Status zurück.
  • Eine benutzerdefinierte Domain wird von dieser Fertigkeit registriert und wird über DNS auf den OBS-Website-Endpunkt aufgelöst. Eine benutzerdefinierte Domain ist zwingend erforderlich – die Standard-OBS-Bucket-Domain ist gemäß Sicherheits-Compliance-Anforderungen für die Online-Vorschau von Objekten nicht zulässig.
  • Das Setup gilt erst als abgeschlossen, wenn die benutzerdefinierte Domain im Bucket registriert ist und korrekt aufgelöst wird.
  • Es wird der OBS-Website-Endpunkt verwendet, nicht der reguläre Bucket-API-Endpunkt.
  • Ein 403-Fehler hat normalerweise zwei häufige Ursachen: Der anonyme/öffentliche Lesezugriff ist nicht auf dem Bucket oder den Objekten aktiviert, oder dem für OBS-Operationen verwendeten AK/SK fehlen die erforderlichen IAM-Berechtigungen.
  • Ein 404-Fehler bedeutet normalerweise, dass der Name des Indexdokuments oder der Upload-Pfad falsch ist.

Sicherheits-Compliance: Anforderung einer benutzerdefinierten Domain

Basierend auf den Sicherheits-Compliance-Anforderungen von Huawei Cloud ist der Standard-Domainname des OBS-Buckets (<bucket_name>.obs.<region>.myhuaweicloud.com) für die Online-Vorschau von Objekten im Bucket verboten. Eine benutzerdefinierte Domain ist daher für das statische Website-Hosting zwingend erforderlich.

Falls der Benutzer noch keine benutzerdefinierte Domain vorbereitet hat:

  1. Fragen Sie den Benutzer zuerst, wo die Website bereitgestellt werden soll (Bereitstellungsregion / Rechtsraum) und wo die Domain registriert wird. Wenden Sie regionsspezifische Anforderungen (wie ICP-Filing) nur dann an, wenn die Einsatzregion diese tatsächlich verlangt.
  2. Leiten Sie den Benutzer an, eine Domain über den Huawei Cloud Domain Registration Service oder andere gängige Domain-Registrierungsseiten zu registrieren.
  3. Wenn (und nur wenn) die Einsatzregion des Benutzers das chinesische Festland ist, muss die Domain außerdem das ICP-Filing (网站备案) durchlaufen, bevor sie für das Website-Hosting verwendet werden kann. Für Bereitstellungen außerhalb des chinesischen Festlands ist dieser Schritt nicht erforderlich – erlegen Sie ihn nicht auf.
  4. Erst nach der Regionsprüfung und, sofern zutreffend, der Bestätigung der Domain-Registrierung/Freigabe sollte die Konfiguration des statischen Website-Hostings fortgesetzt werden.

Wichtig: Fahren Sie nicht mit der Konfiguration des statischen Website-Hostings fort, bis die Voraussetzung der benutzerdefinierten Domain bestätigt ist. Die Standard-OBS-Domain ist selbst in der Testumgebung keine gültige Alternative für den Website-Zugriff.

Erforderliche Eingaben

Sammeln Sie diese, bevor Sie Änderungen vornehmen:

  • region
  • bucket_name
  • custom_domain (erforderlich – siehe Abschnitt zur Sicherheits-Compliance oben)
  • index_document (optional, Standard: index.html)
  • error_document (optional)
  • dns_zone oder DNS-Kontokontext (optional; nur erforderlich, wenn der Benutzer in diesem Durchlauf Änderungen an Huawei Cloud DNS wünscht)

Gehen Sie davon aus, dass die statischen Website-Dateien bereits vom Benutzer hochgeladen wurden.

Abhängigkeiten

Die Fertigkeit hängt von den folgenden Laufzeit-/Tooling-Komponenten ab:

  • Python 3.10+ (erforderlich für scripts/set_obs_website_sdk.py und scripts/verify_obs_website.py)
  • Huawei OBS Python SDK Paket: esdk-obs-python
  • obsutil (zum Generieren und Verwalten der .obsutilconfig-Anmeldeinformationskonfiguration)
  • Huawei Cloud AK/SK Anmeldeinformationen (aus .obsutilconfig)
  • Netzwerkzugriff auf den OBS-Endpunkt und den Website-Endpunkt
  • hcloud CLI (nur erforderlich, wenn diese Fertigkeit Huawei Cloud DNS-Eintragsoperationen verwaltet)
  • dig / nslookup (optional)

Installationsbefehl:

pip install esdk-obs-python

Umfang der Fähigkeiten und Berechtigungen

Diese Fertigkeit deklariert ihren genauen Fähigkeits- und Berechtigungsumfang, damit Aufrufer und Prüfer wissen, was sie tun kann und was nicht, bevor sie aufgerufen wird:

Was sie schreiben (ändern) kann:

  • Nur die Website-Konfiguration des benutzerdefinierten OBS-Buckets (setBucketWebsite: Indexdokument, Fehlerdokument), über scripts/set_obs_website_sdk.py.
  • Die Bindung der benutzerdefinierten Domain an denselben Bucket (setBucketCustomDomain), einschließlich einer optionalen HTTPS-Zertifikatsbindung.
  • DNS-Einträge in einer Huawei Cloud DNS-Zone nur dann, wenn der Benutzer in diesem Durchlauf explizit Änderungen an Huawei Cloud DNS anfordert und die Zone bereitstellt/angibt (hcloud DNS CreateRecordSet).
  • Dies sind produktionsrelevante Änderungen: Sie können den Live-Web-Traffic für die benutzerdefinierte Domain beeinflussen und Bucket-Inhalte öffentlich zugänglich machen. Vor jedem Schreibvorgang werden Warnungen ausgegeben (siehe Arbeitsablauf).

Gelesene Anmeldeinformationen (und deren Quellen):

  • scripts/set_obs_website_sdk.py und scripts/verify_obs_website.py lesen Anmeldeinformationen in der folgenden Prioritätsreihenfolge: (1) CLI-Flags --access-key/--secret-key/--security-token, (2) Umgebungsvariablen HW_ACCESS_KEY / HW_SECRET_KEY / HW_SECURITY_TOKEN, (3) lokale ~/.obsutilconfig. hcloud verwendet sein eigenes konfiguriertes CLI-Profil für DNS-Operationen.
  • Es wird nur das Vorhandensein von Anmeldeinformationen gemeldet; Werte werden niemals ausgegeben, zurückgesendet oder auf die Festplatte geschrieben.

Netzwerkzugriff:

  • Nur auf den OBS-Dienst-Endpunkt (https://obs.<region>.myhuaweicloud.com), den OBS-Website-Endpunkt und (nur auf Anfrage) den Huawei Cloud DNS-Dienst der konfigurierten Region.

Was sie niemals tut:

  • Lädt niemals Objekte/Inhalte im Bucket hoch, löscht oder ändert sie.
  • Berührt niemals andere Buckets, Domains, DNS-Zonen oder Anmeldeinformationen als die vom Benutzer angegebenen.
  • Erstellt niemals Cron-Jobs, Startskripte oder Zustandsdateien und speichert niemals Daten zwischen Sitzungen (siehe "Sitzungsverhalten" unten).
  • Gibt die gelesenen Anmeldeinformationen niemals an Dritte weiter.

Sitzungsverhalten

Diese Fertigkeit führt einen einmaligen Vorgang in einer einzigen Sitzung aus: Sie führt die angeforderten OBS/DNS-API-Aufrufe während der aktuellen Ausführung durch und beendet sich dann. Sie erstellt keine Cron-Jobs, startet keine Skripte, keine Hintergrunddienste und keine Zustandsdateien und speichert keine Konfiguration für spätere Ausführungen. Jeder Aufruf ist unabhängig und muss vom Benutzer ausgelöst werden; nichts wird automatisch geplant oder wiederholt. Langlaufende oder extern geplante Schritte (z. B. Warten auf DNS-Propagation) werden dem Benutzer als etwas beschrieben, das überprüft werden muss, aber nicht als Job von dieser Fertigkeit installiert.

Offenlegung und Bestätigung von Anmeldeinformationen

Da scripts/set_obs_website_sdk.py Cloud-Anmeldeinformationen aus Ihrer Umgebung oder der lokalen ~/.obsutilconfig liest und dann die entfernte Bucket-/DNS-Konfiguration ändert, hat die Ausführung reale Sicherheitsauswirkungen. Vor der Ausführung müssen Sie:

  1. Dem Benutzer mitteilen, dass das Skript Anmeldeinformationen aus seinen CLI-Flags / Umgebungsvariablen / ~/.obsutilconfig lesen und die Website-Konfiguration und die benutzerdefinierte Domain (und DNS, falls angefordert) des entfernten Buckets ändern wird.
  2. Die Bestätigung des Benutzers einholen, dass der Bucket-Name, die benutzerdefinierte Domain und die DNS-Zone (falls vorhanden) korrekt sind und dass er die Änderung autorisiert.
  3. Erst nach dieser Bestätigung das Skript ausführen.

hcloud CLI Referenz

Laden Sie references/cli-installation-guide.md, wenn die Installation und Konfiguration der hcloud CLI oder von obsutil benötigt wird. Laden Sie references/hcloud-dns-obs-website.md, wenn Sie DNS-CNAME-Einträge für benutzerdefinierte Domains des OBS-Website-Hostings erstellen oder verwalten (Schritt-für-Schritt-Anleitung mit hcloud DNS CreateRecordSet-Befehlen).

Sicherheitshinweis:

  • Hartcodieren Sie niemals AK/SK in Skripten oder eingecheckten Dateien.
  • Bevorzugen Sie Umgebungsvariablen für SDK-Skripte und sichere lokale Profil-Speicherung für die CLI-Nutzung.

obsutil-Konfigurationsabhängigkeit

Laden Sie references/cli-installation-guide.md, wenn Sie obsutil-Installation oder Anleitungen zur .obsutilconfig-Einrichtung benötigen.

Das Python SDK-Hilfsskript (scripts/set_obs_website_sdk.py) liest Anmeldeinformationen standardmäßig aus:

  1. CLI-Flags (--access-key, --secret-key, --security-token)
  2. Umgebungsvariablen (HW_ACCESS_KEY, HW_SECRET_KEY, HW_SECURITY_TOKEN)
  3. .obsutilconfig

Wenn ak/sk in allen Quellen leer sind, muss das Skript anhalten und den Benutzer bitten, die fehlenden Schlüssel in .obsutilconfig zu ergänzen (oder CLI-/Umgebungs-Anmeldeinformationen bereitzustellen).

Regel für die Prüfung von Anmeldeinformationen:

  • Melden Sie nur das Vorhandensein/Fehlen von Schlüsseln (ak, sk, securitytoken).
  • Drucken Sie niemals Werte von Anmeldeinformationen während der Prüfungen.
  • Drucken Sie niemals vollständige Zeilen aus .obsutilconfig auf der Konsole.
  • Behandeln Sie die Konsolenausgabe als Modellkontext; jeder durchgesickerte Wert ist ein Sicherheitsvorfall.

Beispiele für sichere Prüfungen (nur Status, keine Geheimwerte):

Linux/macOS:

CFG="${HOME}/.obsutilconfig"
if [ ! -f "$CFG" ]; then
  echo "obsutilconfig_exists=false"
  echo "ak_configured=false"
  echo "sk_configured=false"
  echo "securitytoken_configured=false"
else
  awk -F= '
    BEGIN { ak=0; sk=0; st=0 }
    /^[[:space:]]*#/ { next }
    /^[[:space:]]*(ak|access_key_id)[[:space:]]*=/ { if ($2 ~ /[^[:space:]]/) ak=1 }
    /^[[:space:]]*(sk|secret_access_key)[[:space:]]*=/ { if ($2 ~ /[^[:space:]]/) sk=1 }
    /^[[:space:]]*(securitytoken|security_token|token)[[:space:]]*=/ { if ($2 ~ /[^[:space:]]/) st=1 }
    END {
      print "obsutilconfig_exists=true"
      print "ak_configured=" (ak ? "true" : "false")
      print "sk_configured=" (sk ? "true" : "false")
      print "securitytoken_configured=" (st ? "true" : "false")
    }
  ' "$CFG"
fi

Windows (PowerShell):

$cfg = Join-Path $HOME ".obsutilconfig"
if (-not (Test-Path $cfg)) {
  "obsutilconfig_exists=false"
  "ak_configured=false"
  "sk_configured=false"
  "securitytoken_configured=false"
} else {
  $lines = Get-Content $cfg
  $ak = $false; $sk = $false; $st = $false
  foreach ($line in $lines) {
    if ($line -match '^\s*#') { continue }
    if ($line -match '^\s*(ak|access_key_id)\s*=\s*(\S.*)$') { $ak = $true }
    if ($line -match '^\s*(sk|secret_access_key)\s*=\s*(\S.*)$') { $sk = $true }
    if ($line -match '^\s*(securitytoken|security_token|token)\s*=\s*(\S.*)$') { $st = $true }
  }
  "obsutilconfig_exists=true"
  "ak_configured=$ak"
  "sk_configured=$sk"
  "securitytoken_configured=$st"
}

Nicht verwenden:

  • cat ~/.obsutilconfig
  • grep -E "ak|sk|token" ~/.obsutilconfig

Verwendungszweck der Skripte

Verwenden Sie standardmäßig die enthaltenen Skripte für die Aufgaben, für die sie entwickelt wurden. Diese Skripte führen die Schreibvorgänge aus, die diese Fertigkeit bewirbt – sie sind keine schreibgeschützten Prüfungen:

  • scripts/set_obs_website_sdk.py schreibt die Bucket-Website-Konfiguration (setBucketWebsite) und registriert die benutzerdefinierte Domain (setBucketCustomDomain) auf dem angegebenen Bucket. Verwenden Sie es immer dann, wenn die Aufgabe darin besteht, die Einstellungen für das statische OBS-Website-Hosting zu aktivieren, zu reparieren oder zu ändern. Es liest Anmeldeinformationen wie im Umfang der Fähigkeiten und Berechtigungen deklariert und erfordert die Bestätigung des Benutzers vor dem Schreiben (siehe Offenlegung und Bestätigung von Anmeldeinformationen).
  • scripts/verify_obs_website.py überprüft den veröffentlichten Website-Endpunkt (DNS, HTTP, HTTPS) und führt schreibgeschützte SDK-Bucket-/Regionsprüfungen durch. Verwenden Sie es nach jeder Änderung der Website-Konfiguration und auch, wenn der Benutzer fragt, ob die Website erreichbar ist, oder bei der Fehlerbehebung von 403/404-Verhalten.
  • Ersetzen Sie diese Skripte nicht durch Ad-hoc-Einmal-Code, es sei denn, das Skript selbst ist defekt und muss repariert werden; das Patchen eines defekten Skripts ist der einzige Fall, in dem Sie OBS-SDK-Aufrufe direkt schreiben.
  • Verwenden Sie die Skripte, um die Handhabung von Anmeldeinformationen, die Erstellung von SDK-Objekten und das Überprüfungsverhalten über alle Ausführungen hinweg konsistent zu halten.

Arbeitsablauf

  1. Überprüfen Sie, ob Python-Laufzeit und OBS-SDK verfügbar sind (pip install esdk-obs-python, falls nicht vorhanden).
  2. Überprüfen Sie die Voraussetzung der benutzerdefinierten Domain (siehe Abschnitt Sicherheits-Compliance):
    • Bestätigen Sie, dass custom_domain vom Benutzer bereitgestellt wurde.
    • Fragen Sie den Benutzer, wo die Website bereitgestellt werden soll (Region/Rechtsraum), bevor Sie regionsspezifische Anforderungen anwenden. Wenn der Benutzer keine Domain hat und die Bereitstellungsregion das chinesische Festland ist, leiten Sie ihn zur Registrierung einer Domain bei der Huawei Cloud Domain Registration an und fordern Sie den Abschluss des ICP-Filing (网站备案). Für Bereitstellungen außerhalb des chinesischen Festlands erlegen Sie das ICP-Filing nicht auf. Halten Sie hier an und warten Sie, bis der Benutzer diesen Schritt abgeschlossen hat.
    • Prüfen Sie, ob der Benutzer DNS in Huawei Cloud DNS oder bei einem externen Anbieter verwaltet.
    • Wenn Änderungen an Huawei Cloud DNS Teil dieses Durchlaufs sind, überprüfen Sie, ob hcloud installiert und authentifiziert ist.
    • Wenn DNS außerhalb von Huawei Cloud oder außerhalb dieses Durchlaufs verwaltet wird, erfassen Sie diese Einschränkung explizit, bevor Sie fortfahren.
  3. Überprüfen Sie, ob der Bucket in der angeforderten Region existiert (verwenden Sie die Methode zur Prüfung der Bucket-Existenz und -Region unten).
  4. Prüfen Sie, ob der Aufrufer die Berechtigung hat, die Bucket-Website-Einstellungen zu aktualisieren.
  5. Prüfen Sie, ob der anonyme Lesezugriff für die Website-Dateien erlaubt ist (verwenden Sie die Methode im Abschnitt Methode zur Prüfung des anonymen Lesezugriffs unten).
  6. Laden Sie keine Website-Inhaltsobjekte hoch oder ändern Sie sie nicht (index.html, Assets usw.). Gehen Sie davon aus, dass der Inhalt bereits im Bucket vorhanden ist.
  7. Bestätigen vor dem Schreiben. Teilen Sie dem Benutzer mit, dass der nächste Schritt seine Cloud-Anmeldeinformationen (Umgebungsvariablen / ~/.obsutilconfig) liest und die Website-Konfiguration und die Bindung der benutzerdefinierten Domain (und DNS, falls angefordert) des entfernten Buckets ändert, und dass dies produktionsrelevante Änderungen sind, die den Live-Traffic beeinflussen. Fahren Sie nur nach Bestätigung fort. Führen Sie dann scripts/set_obs_website_sdk.py mit --custom-domain <domain> aus (verwenden Sie index.html, falls index_document nicht bereitgestellt wird).
    • Das Skript dient dazu, den Bau von SDK-Objekten konsistent zu halten.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

huaweicloud/huawei-cloud-dws-io-diag

DWS cluster I/O overload root cause diagnosis skill, based on KooCLI v3.2.0+ and DWS Autopilot MCP Server. Automatically collects I/O metrics, analyzes root causes (customer-side / system-side) via three-stage decision tree, and outputs a standardized diagnosis report. Applicable to DWS cluster I/O usage too high, I/O alarms, disk I/O load anomaly scenarios. Trigger words: "I/O高", "I/O告警", "I/O诊断", "I/O过载", "IO高", "IO告警", "IO诊断", "IO过载", "磁盘IO负载异常", "util打满", "await高", "high I/O", "I/O alarm", "I/O diagnosis"

huaweicloud/huawei-cloud-ecs-manage

Use when managing Huawei Cloud ECS (Elastic Cloud Server / 弹性云服务器) instances — lifecycle management (create / start / stop / restart / delete), day-to-day change operations (resize / reinstall OS / reset password / replace keypair / bind & unbind EIP / change security group / add & remove NIC / attach & detach volume), instance querying, quota/flavor/image inspection, mandatory async-job polling after every write, and multi-step root-cause diagnosis of ECS instance creation failures (quota → flavor → image → network → keypair → disk). Provides 23 huawei_* actions: huawei_list_ecs_instances, huawei_get_ecs_instance, huawei_list_ecs_flavors, huawei_list_ecs_images, huawei_list_ecs_quotas, huawei_diagnose_ecs_create_failure, huawei_analyze_ecs_health, huawei_create_ecs_instance, huawei_start_ecs_instance, huawei_stop_ecs_instance, huawei_restart_ecs_instance, huawei_delete_ecs_instance, huawei_resize_ecs_instance, huawei_reinstall_ecs_os, huawei_reset_ecs_password, huawei_replace_ecs_keypair, huawei_bind_ecs_eip

huaweicloud/huawei-cloud-ges-graph

Provides access guide for Huawei Cloud Graph Database GES service. Covers Cypher queries, GQL queries, schema/label management, summary info queries, graph data editing and more. Use this skill when users want to operate Huawei Cloud graph database GES service via terminal.

huaweicloud/huawei-cloud-obs-upload

Upload a local file or directory to a specified Huawei Cloud OBS (Object Storage Service) bucket with obsutil, and set up a scheduled/periodic upload task (crontab) that syncs a local directory to an OBS bucket. Also lists OBS buckets with storage capacity and object count. Use this skill when the user wants to: (1) upload a specific local file or directory to a named OBS bucket, (2) set up a scheduled/periodic upload task that automatically syncs a local directory to a named OBS bucket, (3) list their OBS buckets and check capacity and object count. Triggers include: user mentions "upload to OBS bucket", "上传文件到OBS", "上传目录到OBS", "定时上传到OBS", "目录同步到OBS桶", "OBS scheduled upload", "OBS周期上传", "OBS bucket capacity check", "OBS桶容量查询". Generic phrases such as "object storage", "upload file" or "upload directory" alone are NOT sufficient to trigger this skill.

Verwandte Skills