CommunityCodierung & Entwicklunggithub.com

huaweicloud/huawei-cloud-obs-upload

Laden Sie eine lokale Datei oder ein Verzeichnis in einen bestimmten Huawei Cloud OBS-Bucket (Object Storage Service) mit obsutil hoch und richten Sie eine geplante/wiederkehrende Upload-Aufgabe (Crontab) ein, die ein lokales Verzeichnis mit einem OBS-Bucket synchronisiert. Zeigt außerdem OBS-Buckets mit Speicherkapazität und Objektanzahl an.

Was ist huawei-cloud-obs-upload?

Diese Fähigkeit ermöglicht das Hochladen von Dateien und Verzeichnissen in Huawei Cloud OBS-Buckets, die Auflistung von Buckets mit Kapazität und Objektanzahl sowie die Einrichtung zeitgesteuerter Uploads per Crontab. Sie verwendet `obsutil` für Uploads und `hcloud CLI` für Bucket-Listen und Statistiken, wobei eine strikte Trennung der Werkzeuge gewährleistet ist. Die Fähigkeit folgt strengen Sicherheitsregeln: AK/SK werden niemals im Gespräch abgefragt oder angezeigt, Löschoperationen sind verboten, und jeder Upload sowie jede Einrichtung eines zeitgesteuerten Uploads erfordert die explizite Bestätigung des Benutzers. Sie unterstützt die Plattformen Linux, macOS und Windows und ist ideal für Entwickler und Administratoren, die lokale Daten sicher in die Cloud übertragen und regelmäßig synchronisieren möchten, ohne eigene Skripte schreiben zu müssen.

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

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 Upload Skill

Übersicht

Lokale Dateien oder Verzeichnisse in Huawei Cloud OBS-Buckets hochladen, OBS-Buckets mit Kapazität und Objektanzahl auflisten und zeitgesteuerte Uploads per Crontab einrichten. Upload-Operationen verwenden obsutil; Bucket-Listen/Statistiken nutzen hcloud obs ls + CES-Metriken.

Trennungsprinzip der Werkzeuge:

  • obsutil — Datei-/Verzeichnis-Upload, zeitgesteuerter Upload-Sync (Kernwerkzeug für Uploads; die hcloud CLI unterstützt kein PutObject)
  • hcloud CLI — Bucket-Listen via hcloud obs ls (obsutil-Modus), Bucket-Kapazität/Objektanzahl-Statistiken via hcloud CES ShowMetricData
  • crontab / Aufgabenplaner — OS-eigener Zeitplaner für periodische Uploads (keine Abhängigkeit von Daemon-Prozessen)

Sicherheitsarchitektur:

  • AK/SK werden niemals im Gespräch gelesen, ausgegeben oder gedruckt
  • obsutil-Anmeldeinformationen werden vom Benutzer in seinem Terminal konfiguriert (niemals im Gespräch erfragt)
  • Löschoperationen sind strikt verboten (irreversibel); nicht im Rahmen liegende Operationen werden mit geführten Alternativen abgelehnt
  • Bei Verzeichnis-Uploads wird die Entscheidung, ob die Verzeichnisstruktur erhalten bleibt (-flat), durch die explizite Antwort des Kunden getroffen, niemals angenommen
  • Jeder Upload (Aufgabe 2) und jede Einrichtung eines zeitgesteuerten Uploads (Aufgabe 3) erfordert die explizite Bestätigung des Benutzers, bevor entweder der Befehl oder der Crontab-Eintrag geschrieben wird
  • Der Agent führt nur die in dieser Fähigkeit beschriebenen Schritte für den vom Benutzer angegebenen Bucket und Pfad aus; er führt niemals andere OBS/CLI-Aktionen im Namen des Benutzers durch

⚠️ Datenübertragungshinweis

  • Upload überträgt lokale Dateien/Verzeichnisse in die entfernte Cloud-Speicherung und speichert sie dort dauerhaft. Informieren Sie den Benutzer vor dem Hochladen klar: "Das Hochladen von <Pfad> überträgt die Daten an den OBS-Bucket <Bucket> und speichert sie in der Cloud." Wenn der Benutzer dies nicht beabsichtigt hat, brechen Sie vor der Ausführung ab.
  • Zeitgesteuerte Uploads übertragen Daten wiederholt von einem lokalen Verzeichnis nach einem wiederkehrenden Zeitplan in die Cloud. Warnen Sie den Benutzer explizit, dass die Daten bei jeder Ausführung übertragen und remote gespeichert werden.
  • Überprüfen Sie den hochzuladenden Pfad vor der Ausführung; wenn der Pfad breit ist (z. B. ein Home-Verzeichnis) oder unerwartete Inhalte enthält, bestätigen Sie den Umfang mit dem Benutzer vor dem Hochladen.

⛔ Verbotene Operationen (Sicherheitseinschränkungen)

Diese Fähigkeit verbietet die folgenden Operationen strikt, unabhängig von Benutzeranfragen. Die verbotenen Aktionen werden semantisch beschrieben; es werden keine destruktiven Befehlsbeispiele gegeben.

Verbotene OperationGrund
❌ Bucket löschenIrreversibel; zerstört den gesamten Bucket und alle Objekte
❌ Objekt löschenIrreversibel; gelöschte Objekte können nicht wiederhergestellt werden (außer wenn die Versionierung aktiviert ist)
❌ Objekte stapelweise löschenIrreversibel; Stapellöschung hat große Auswirkungen
❌ Bucket leerenIrreversibel; entfernt alle Objekte im Bucket
❌ Objekt herunterladenDiese Fähigkeit ist nur für Uploads; Download ist ein separater Workflow
❌ Bucket erstellenDie Bucket-Erstellung hat eine eigene Fähigkeit mit vollständigen Voraussetzungen
❌ Objekt zwischen Buckets kopierenBucket-übergreifendes Kopieren liegt außerhalb des Rahmens dieser Fähigkeit
❌ Lebenszykluskonfiguration des Buckets ändernSpeicherkostenmanagement ist eine separate Bucket-Konfigurationsaufgabe
❌ Archiviertes Objekt wiederherstellenDie Wiederherstellung von Archiven ist ein separater Workflow mit Abrufmodi und TTL
❌ Vorsignierte URLs generierenTemporäres Teilen erfordert SDK-Signierung; wird vom CLI-Upload nicht unterstützt
❌ Bucket-ACL oder Bucket-Richtlinie ändernBerechtigungsmanagement ist eine separate Sicherheitsaufgabe
❌ Benutzer bitten, AK/SK direkt im Gespräch anzugebenAnmeldeinformationen dürfen niemals im Gespräch erscheinen
❌ AK/SK aus hcloud-Konfigurationsdateien extrahierenAnmeldeinformationen sind verschlüsselt und können nicht direkt verwendet werden
❌ Obsutil-Anmeldeinformationsprüfung vor OBS-Operationen überspringenOperationen schlagen ohne konfigurierte Anmeldeinformationen fehl
❌ -flat für Verzeichnis-Uploads verwenden, ohne den Kunden zu fragen-flat verwirft die Verzeichnisstruktur; muss der expliziten Antwort des Kunden folgen
❌ Lokalen Pfad, Bucket-Namen oder Zielpräfix erratenErforderliche Parameter müssen vom Benutzer bereitgestellt werden

Wenn ein Benutzer eine Löschoperation anfordert, müssen Sie ablehnen und mitteilen: "Aus Sicherheitsgründen erlaubt diese Fähigkeit keine Löschoperationen (Bucket/Objekt löschen, stapelweises Löschen, Bucket leeren). Bitte verwenden Sie die Huawei Cloud OBS-Konsole oder obsutil manuell."

Wenn ein Benutzer eine nicht im Rahmen liegende Operation anfordert, versuchen Sie nicht, sie auszuführen. Informieren Sie den Benutzer mit der empfohlenen Alternative aus der folgenden Tabelle:

OperationEmpfohlene Alternative
Objekt herunterladenVerwenden Sie obsutil cp obs://<Bucket>/<Key> <LokalerPfad> manuell oder die OBS-Konsole
Bucket erstellenVerwenden Sie die spezielle Fähigkeit huawei-cloud-obs-bucket-create oder die OBS-Konsole
Objekt kopierenVerwenden Sie hcloud OBS CopyObject manuell oder die OBS-Konsole
LebenszykluskonfigurationVerwenden Sie die OBS-Konsole (Bucket > Lebenszyklus) oder hcloud OBS SetBucketLifecycle
Archiviertes Objekt wiederherstellenVerwenden Sie obsutil restore obs://<Bucket>/<Key> manuell oder die OBS-Konsole
Vorsignierte URLVerwenden Sie das Huawei Cloud SDK (Java/Python/Go) zum Generieren vorsignierter URLs oder die OBS-Konsole
Bucket-ACL/RichtlinieVerwenden Sie die OBS-Konsole (Bucket > Berechtigungen) oder hcloud OBS SetBucketAcl/SetBucketPolicy

Architektur

Huawei Cloud OBS Upload Management
├── Aufgabe 1: ListBucketsWithStats   (Buckets mit Kapazität und Objektanzahl auflisten)
│   ├── 1a. hcloud obs ls: alle Buckets auflisten
│   ├── 1b. CES-Metriken / OBS-API: Bucket-Kapazität und Objektanzahl abfragen
│   └── 1c. Bucket-Statistiktabelle dem Benutzer melden
├── Aufgabe 2: UploadFile             (Lokale Datei oder Verzeichnis in Ziel-Bucket hochladen)
│   ├── 2a. Lokalen Pfad + Bucket-Namen + Zielpräfix mit Benutzer bestätigen
│   ├── 2b. Bei Verzeichnis: Kunden fragen, ob die Verzeichnisstruktur erhalten bleiben soll (-flat entscheiden)
│   ├── 2c. Warnen, dass Daten remote gespeichert werden + explizite Benutzerbestätigung einholen
│   ├── 2d. obsutil cp: einzelne Datei (-flat) oder Verzeichnis (-r, optional -flat je nach Kundenantwort)
│   └── 2e. Upload-Ergebnis überprüfen
└── Aufgabe 3: ScheduledUpload       (Zeitgesteuerten Upload eines lokalen Verzeichnisses in Ziel-Bucket einrichten)
    ├── 3a. Lokales Verz. + Bucket + Präfix + Zeitplan mit Benutzer bestätigen
    ├── 3b. Kunden fragen, ob die Verzeichnisstruktur erhalten bleiben soll (-flat entscheiden)
    ├── 3c. Über Persistenz warnen + explizite Benutzerbestätigung einholen
    ├── 3d. Obsutil-Upload-Skript generieren (mit/ohne -flat gemäß Kundenantwort)
    ├── 3e. Crontab / Aufgabenplaner eintragen
    └── 3f. Zeitgesteuerte Aufgabe überprüfen

Voraussetzungen

Voraussetzungsprüfung 1/3: Huawei Cloud CLI (hcloud / KooCLI) >= 3.2.0 erforderlich Führen Sie hcloud version aus, um die Version >= 3.2.0 zu überprüfen. Falls nicht installiert oder die Version zu niedrig ist, siehe references/cli-installation-guide.md für die Installationsanleitung.

hcloud version

Voraussetzungsprüfung 2/3: obsutil >= 5.5.0 erforderlich (für Upload-Funktionen) Datei-/Verzeichnis-Upload erfordert das Huawei Cloud obsutil CLI-Tool. Führen Sie obsutil version aus, um die Version >= 5.5.0 zu überprüfen. Falls nicht installiert, siehe references/cli-installation-guide.md für die Installationsanleitung.

obsutil version

Voraussetzungsprüfung 3/3: obsutil-Anmeldeinformationskonfiguration erforderlich

Das hcloud obs-Modul verwendet intern obsutil, das eine separate AK/SK- und Endpunkt-Konfiguration erfordert. Bevor OBS-Operationen durchgeführt werden, müssen Sie prüfen, ob obsutil-Anmeldeinformationen konfiguriert sind:

hcloud obs ls -limit=1

Wenn die Antwort Please set ak, sk and endpoint in the configuration file! oder InvalidAccessKeyId lautet, sind obsutil-Anmeldeinformationen nicht konfiguriert.

Lösung: Leiten Sie den Benutzer an, obsutil-Anmeldeinformationen in seinem eigenen Terminal zu konfigurieren (fragen Sie den Benutzer nicht, AK/SK direkt im Gespräch anzugeben), mit der folgenden Sicherheitswarnung:

obsutil-Anmeldeinformationen sind nicht konfiguriert. Bitte führen Sie den folgenden Befehl in Ihrem Terminal aus, um zu konfigurieren (AK/SK können auf der Seite "Meine Anmeldeinformationen" der Huawei Cloud-Konsole bezogen werden):

  hcloud obs config -i=<IhrAK> -k=<IhrSK> -e=obs.<Region>.myhuaweicloud.com

Beispiel (Region Guangzhou):
  hcloud obs config -i=<IhrAK> -k=<IhrSK> -e=obs.cn-south-1.myhuaweicloud.com

Übliche Endpunkte:
  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

⚠️ Sicherheitswarnung: Die Angabe von AK/SK in der Befehlszeile setzt sie dem Shell-Verlauf und Betriebssystem-Prozesslisten aus.
Bevorzugen Sie die interaktive Konfiguration (`hcloud configure`) oder Umgebungsvariablen (HW_ACCESS_KEY / HW_SECRET_KEY).
Löschen Sie nach der Konfiguration Ihren Shell-Verlauf, wenn der Klartextbefehl verwendet wurde.

Wiederholen Sie den Vorgang nach Abschluss der Konfiguration.

⚠️ hcloud Parameterformat-Anforderungen

hcloud (KooCLI) Cloud-Service-API-Befehle (Großbuchstaben-Modul, z. B. hcloud CES ShowMetricData) müssen das Format --param=wert verwenden (mit Gleichheitszeichen verbunden); das durch Leerzeichen getrennte Format wird nicht unterstützt.

✅ Richtig: hcloud CES ShowMetricData --region=cn-south-1 --namespace=SYS.OBS

❌ Falsch: hcloud CES ShowMetricData --region cn-south-1

Hinweis: hcloud obs (Kleinbuchstaben, obsutil-Modus) bildet direkt obsutil-Befehle ab und verwendet den obsutil-Parameterstil (z. B. hcloud obs ls, hcloud obs config -i=...); die --param=wert-Regel gilt nicht. Es gibt keinen Befehl hcloud OBS ListBuckets – verwenden Sie hcloud obs ls, um Buckets aufzulisten.


Authentifizierung

Sicherheitsregeln (müssen befolgt werden):

  • Verboten, AK/SK-Werte zu lesen, zurückzugeben oder zu drucken
  • Verboten, den Benutzer aufzufordern, AK/SK direkt im Gespräch einzugeben
  • Verboten, hcloud configure set zu verwenden, um Klartext-Anmeldeinformationen zu übergeben
  • Verboten, AK/SK zu akzeptieren, die vom Benutzer direkt im Gespräch bereitgestellt werden
  • Nur erlaubt, Anmeldeinformationen aus Umgebungsvariablen oder konfigurierten CLI-Konfigurationsdateien zu lesen

⚠️ Warnung zur Offenlegung von Anmeldeinformationen (teilen Sie dies dem Benutzer mit, wenn die Konfiguration von Anmeldeinformationen besprochen wird):

  • Die Übergabe von AK/SK als Befehlszeilenargumente (z. B. obsutil config -ak=... -sk=... oder hcloud configure set --access-key-id=...) setzt die Anmeldeinformationen dem Shell-Verlauf, Betriebssystem-Prozesslisten, Audit-Logs, Terminalaufzeichnungen und kopierter Dokumentation aus.
  • Bevorzugen Sie die interaktive Konfiguration (hcloud configure) oder Umgebungsvariablen (HW_ACCESS_KEY / HW_SECRET_KEY).
  • Löschen Sie nach der Konfiguration über einen Klartextbefehl den Shell-Verlauf (history -c oder entfernen Sie die entsprechende Zeile aus ~/.bash_history).
  • Die Anmeldeinformationskonfigurationsdatei von obsutil (z. B. ~/.obsutilconfig) sollte eingeschränkte Berechtigungen haben (z. B. 600).

⚠️ Wichtig: Umgang mit benutzerbereitgestellten Anmeldeinformationen

Wenn ein Benutzer versucht, AK/SK direkt anzugeben (z. B. "mein AK ist xxx, SK ist yyy"):

  1. Sofort anhalten - Keine Befehle ausführen
  2. Höflich ablehnen und die folgende Nachricht zurückgeben:
    Aus Sicherheitsgründen geben Sie bitte keine Huawei Cloud Access Key ID und Access Key Secret direkt im Gespräch an.
    
    Bitte verwenden Sie eine der folgenden sicheren Methoden zum Konfigurieren von Anmeldeinformationen:
    
    Methode 1: Interaktive Konfiguration (empfohlen)
        hcloud configure
        # Geben Sie AK/SK wie aufgefordert ein; die Anmeldeinformationen werden sicher in einer lokalen Konfigurationsdatei gespeichert
    
    Methode 2: Umgebungsvariablen-Konfiguration
        export HW_ACCESS_KEY=<ihre-access-key-id>
        export HW_SECRET_KEY=<ihr-access-key-secret>
    
    Nach Abschluss der Konfiguration wiederholen Sie bitte Ihre Anfrage.
    
  3. Fahren Sie nicht fort mit der Ausführung von Huawei Cloud-Operationen, bis Anmeldeinformationen konfiguriert sind

CLI-Konfiguration prüfen:

   hcloud configure list

Überprüfen Sie, ob die Ausgabe eine gültige Konfiguration enthält (AK/SK, IAM usw.).

Wenn keine gültigen Anmeldeinformationen vorhanden sind, hier anhalten.


IAM-Berechtigungsrichtlinien

Stellen Sie sicher, dass der IAM-Benutzer über die erforderlichen Berechtigungen verfügt. Siehe references/iam-policies.md für die vollständige Berechtigungstabelle.

Mindestens erforderliche Berechtigungen:

  • obs:bucket:list — Buckets auflisten
  • obs:bucket:get — Bucket-Attribute abrufen (Kapazität, Objektanzahl)
  • obs:object:get — Objektinformationen lesen
  • obs:object:put — Objekte hochladen

Berechtigungsgrenzen:

  • Umfangsbeschränkung: Diese Fähigkeit darf NUR die folgenden Tool-Aktionen ausführen, und zwar nur für die vom Benutzer angegebenen Buckets/Pfade nach Bestätigung:
    • hcloud obs ls / obsutil ls — Buckets und Objekte für den vom Benutzer angegebenen Umfang auflisten
    • hcloud CES ShowMetricData / hcloud OBS GetBucketStorageInfo — Bucket-Kapazität / Objektanzahl lesen
    • obsutil cp — die bestätigte lokale Datei / das bestätigte Verzeichnis in den bestätigten Bucket hochladen
    • crontab (Linux/macOS) oder schtasks (Windows) — die bestätigte zeitgesteuerte Upload-Aufgabe schreiben/entfernen
  • Alle anderen CLI/Tool-Operationen (Löschen, Herunterladen, Kopieren, Bucket-Erstellung, Konfigurationsänderung usw.) liegen strikt außerhalb des Rahmens und müssen abgelehnt werden.
  • Muss anhalten, wenn: Anmeldeinformationen fehlen oder ungültig sind, der Benutzer eine Bestätigung ablehnt, der Ziel-Bucket nicht existiert oder der lokale Pfad nicht existiert.
  • Verbotene Aktionen: jede Löschoperation, jede nicht im Rahmen liegende oben aufgeführte Operation, Änderung der Werkzeugliste hier oder Ausführung eines Befehls über den bestätigten Umfang hinaus.

Kern-Workflows

Aufgabe 1: Buckets mit Kapazität und Objektanzahl auflisten

Buckets via obsutil auflisten, dann Bucket-Kapazität und Objektanzahl mithilfe von CES-Kapazitätsmetriken oder der OBS-API abfragen.

⚠️ Werkzeugtrennung: hcloud obs ls zum Auflisten, hcloud CES ShowMetricData für Statistiken

  • hcloud obs ls: alle Buckets auflisten (obsutil-Modus; kein --region-Parameter — die Region wird über hcloud obs config -e=... gesetzt)
  • hcloud CES ShowMetricData / OBS-API: Kapazität und Objektanzahl jedes Buckets abfragen

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-website-host

Configure Huawei Cloud OBS static website hosting with Python SDK and a custom domain. Use when the user needs to enable or repair OBS website hosting, set index or error pages, expose an existing bucket for public website access through a custom domain, or connect that domain through Huawei Cloud DNS when Huawei manages the zone. Triggers include OBS static website hosting, website endpoint, index page, error page, public-read bucket website access, custom domain CNAME, Huawei Cloud DNS, setBucketWebsite. 中文触发词包括:OBS 静态网站托管、网站托管、自定义域名解析。

Verwandte Skills