CommunityProgramación y desarrollogithub.com

huaweicloud/huawei-cloud-obs-upload

Sube un archivo o directorio local a un bucket especificado de Huawei Cloud OBS (Object Storage Service) con obsutil, y configura una tarea de subida programada/periódica (crontab) que sincroniza un directorio local con un bucket de OBS. También lista los buckets de OBS con capacidad de almacenamiento y número de objetos.

¿Qué es huawei-cloud-obs-upload?

Este skill permite a agentes de IA (como Claude Code, Cursor, Codex) gestionar la subida de archivos y directorios locales a Huawei Cloud OBS (Object Storage Service) utilizando la herramienta obsutil, así como configurar tareas de subida periódicas mediante crontab. Está diseñado para desarrolladores y usuarios que necesitan una forma automatizada y segura de transferir datos al almacenamiento en la nube de Huawei. El skill cubre tres tareas principales: listar buckets de OBS con estadísticas de capacidad y recuento de objetos, subir archivos o directorios específicos a un bucket designado (con confirmación explícita del usuario), y configurar una tarea programada que sincronice automáticamente un directorio local con un bucket. Incorpora estrictas medidas de seguridad: no permite operaciones de eliminación (irreversibles), no acepta AK/SK directamente en la conversación, y siempre requiere confirmación del usuario antes de ejecutar subidas o cambios en crontab. Es compatible con plataformas Linux/macOS y Windows, y se integra con las CLI hcloud (KooCLI) y obsutil.

Compatible con~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 Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Skill de Subida a Huawei Cloud OBS

Resumen

Sube archivos o directorios locales a buckets de Huawei Cloud OBS, lista buckets de OBS con capacidad y número de objetos, y programa subidas periódicas mediante crontab. Las operaciones de subida usan obsutil; el listado y estadísticas de buckets usan hcloud obs ls + métricas CES.

Principio de separación de herramientas:

  • obsutil — Subida de archivos/directorios, sincronización de subidas programadas (herramienta principal de subida; la CLI hcloud no tiene soporte para PutObject)
  • hcloud CLI — Listado de buckets mediante hcloud obs ls (modo obsutil), estadísticas de capacidad/recuento de objetos mediante hcloud CES ShowMetricData
  • crontab / Programador de tareas — Tarea programada a nivel de SO para subida periódica (sin dependencia de procesos en segundo plano)

Arquitectura de seguridad:

  • AK/SK nunca se leen, muestran ni imprimen en la conversación
  • Las credenciales de obsutil son configuradas por el usuario en su terminal (nunca se solicitan en la conversación)
  • Las operaciones de eliminación están estrictamente prohibidas (irreversibles); las operaciones fuera del alcance se rechazan con alternativas guiadas
  • Para subidas de directorios, la decisión de preservar la estructura del directorio (-flat) se toma según la respuesta explícita del cliente, nunca se asume
  • Cada subida (Tarea 2) y cada configuración de subida programada (Tarea 3) requiere la confirmación explícita del usuario antes de ejecutar el comando o la escritura en crontab
  • El agente solo ejecuta los pasos descritos en este skill para el bucket y la ruta exactos especificados por el usuario; nunca realiza ninguna otra acción de OBS/CLI en nombre del usuario

⚠️ Aviso de transmisión de datos

  • La subida transfiere archivos/directorios locales al almacenamiento en la nube remoto y los persiste allí. Antes de subir, informa claramente al usuario: "Subir <ruta> transmitirá los datos al bucket de OBS <Bucket> y los almacenará en la nube." Si el usuario no tenía esta intención, detente antes de ejecutar.
  • Las subidas programadas envían datos repetidamente desde un directorio local a la nube en un horario recurrente. Advierta explícitamente al usuario de que los datos se transmitirán y persistirán de forma remota en cada ejecución.
  • Revisa la ruta a subir antes de ejecutar; si la ruta es amplia (por ejemplo, un directorio de inicio) o contiene contenido inesperado, confirma el alcance con el usuario antes de subir.

⛔ Operaciones Prohibidas (Restricciones de Seguridad)

Este skill prohíbe estrictamente las siguientes operaciones, independientemente de las solicitudes del usuario. Las acciones prohibidas se describen semánticamente; no se proporcionan ejemplos de comandos destructivos.

Operación ProhibidaMotivo
❌ Eliminar un bucketIrreversible; destruye todo el bucket y todos los objetos
❌ Eliminar un objetoIrreversible; los objetos eliminados no se pueden recuperar (a menos que el versionado esté habilitado)
❌ Eliminación masiva de objetosIrreversible; la eliminación masiva tiene un impacto amplio
❌ Vaciar un bucketIrreversible; elimina todos los objetos del bucket
❌ Descargar un objetoEste skill es solo de subida; la descarga es un flujo de trabajo separado
❌ Crear un bucketLa creación de buckets tiene un skill dedicado con requisitos previos completos
❌ Copiar un objeto entre bucketsLa copia entre buckets está fuera del alcance de este skill
❌ Modificar la configuración del ciclo de vida del bucketLa gestión de costos de almacenamiento es una tarea separada de configuración a nivel de bucket
❌ Restaurar un objeto archivadoLa restauración de archivos es un flujo de trabajo separado con modos de recuperación y TTL
❌ Generar URL prefirmadasEl uso compartido temporal requiere firma SDK; no compatible con la subida por CLI
❌ Modificar la ACL o la política del bucketLa gestión de permisos es una tarea de seguridad separada
❌ Pedir al usuario que proporcione AK/SK directamente en la conversaciónLas credenciales nunca deben aparecer en la conversación
❌ Extraer AK/SK de los archivos de configuración de hcloudLas credenciales están cifradas y no se pueden usar directamente
❌ Omitir la verificación de credenciales de obsutil antes de las operaciones de OBSLas operaciones fallan sin credenciales configuradas
❌ Usar -flat para subidas de directorios sin preguntar al cliente-flat descarta la estructura del directorio; debe seguir la respuesta explícita del cliente
❌ Adivinar la ruta local, el nombre del bucket o el prefijo de destinoLos parámetros requeridos deben ser proporcionados por el usuario

Si un usuario solicita una operación de eliminación, debes rechazarla e informar: "Debido a las restricciones de seguridad, este skill no permite operaciones de eliminación (eliminar bucket/objeto/eliminación masiva/vaciar bucket). Utilice la consola de Huawei Cloud OBS u obsutil manualmente."

Si un usuario solicita una operación fuera del alcance, no intentes realizarla. Informa al usuario con la alternativa recomendada de la siguiente tabla:

OperaciónAlternativa recomendada
Descargar objetoUsa obsutil cp obs://<Bucket>/<Key> <RutaLocal> manualmente, o la consola de OBS
Crear bucketUsa el skill dedicado huawei-cloud-obs-bucket-create, o la consola de OBS
Copiar objetoUsa hcloud OBS CopyObject manualmente, o la consola de OBS
Configuración de ciclo de vidaUsa la consola de OBS (Bucket > Ciclo de vida), o hcloud OBS SetBucketLifecycle
Restaurar objeto archivadoUsa obsutil restore obs://<Bucket>/<Key> manualmente, o la consola de OBS
URL prefirmadaUsa el SDK de Huawei Cloud (Java/Python/Go) para generar URL prefirmadas, o la consola de OBS
ACL/Política de bucketUsa la consola de OBS (Bucket > Permisos), o hcloud OBS SetBucketAcl/SetBucketPolicy

Arquitectura

Gestion de Subidas a Huawei Cloud OBS
├── Tarea 1: ListBucketsWithStats   (Listar buckets con capacidad y número de objetos)
│   ├── 1a. hcloud obs ls: listar todos los buckets
│   ├── 1b. Métricas CES / API OBS: consultar capacidad y número de objetos del bucket
│   └── 1c. Informar tabla de estadísticas del bucket al usuario
├── Tarea 2: UploadFile             (Subir archivo o directorio local al bucket de destino)
│   ├── 2a. Confirmar ruta local + nombre del bucket + prefijo de destino con el usuario
│   ├── 2b. Para directorio: preguntar al cliente si preservar la estructura del directorio (decidir -flat)
│   ├── 2c. Advertir que los datos persisten de forma remota + obtener confirmación explícita del usuario
│   ├── 2d. obsutil cp: archivo único (-flat) o directorio (-r, opcional -flat según respuesta del cliente)
│   └── 2e. Verificar resultado de la subida
└── Tarea 3: ScheduledUpload       (Programar subida periódica del directorio local al bucket de destino)
    ├── 3a. Confirmar directorio local + bucket + prefijo + período de programación con el usuario
    ├── 3b. Preguntar al cliente si preservar la estructura del directorio (decidir -flat)
    ├── 3c. Advertir sobre la persistencia + obtener confirmación explícita del usuario
    ├── 3d. Generar script de subida obsutil (con/sin -flat según respuesta del cliente)
    ├── 3e. Configurar tarea programada en crontab / Programador de tareas
    └── 3f. Verificar que la tarea programada está configurada

Requisitos Previos

Verificación de requisito previo 1/3: CLI de Huawei Cloud (hcloud / KooCLI) >= 3.2.0 requerida Ejecuta hcloud version para verificar que la versión sea >= 3.2.0. Si no está instalada o la versión es demasiado baja, consulta references/cli-installation-guide.md para la guía de instalación.

hcloud version

Verificación de requisito previo 2/3: obsutil >= 5.5.0 requerido (para funciones de subida) La subida de archivos/directorios requiere la herramienta CLI obsutil de Huawei Cloud. Ejecuta obsutil version para verificar que la versión sea >= 5.5.0. Si no está instalada, consulta references/cli-installation-guide.md para la guía de instalación.

obsutil version

Verificación de requisito previo 3/3: Configuración de credenciales de obsutil requerida

El módulo hcloud obs se asigna a obsutil internamente, que requiere configuración separada de AK/SK y Endpoint. Antes de realizar operaciones de OBS, debes verificar si las credenciales de obsutil están configuradas:

hcloud obs ls -limit=1

Si la respuesta es Please set ak, sk and endpoint in the configuration file! o InvalidAccessKeyId, las credenciales de obsutil no están configuradas.

Resolución: Indica al usuario que configure las credenciales de obsutil en su propia terminal (no le pidas que proporcione AK/SK directamente en la conversación), con la advertencia de seguridad a continuación:

Las credenciales de obsutil no están configuradas. Ejecuta el siguiente comando en tu terminal para configurar (AK/SK se pueden obtener desde la página "Mis Credenciales" de la consola de Huawei Cloud):

  hcloud obs config -i=<TuAK> -k=<TuSK> -e=obs.<Región>.myhuaweicloud.com

Ejemplo (región de Cantón):
  hcloud obs config -i=<TuAK> -k=<TuSK> -e=obs.cn-south-1.myhuaweicloud.com

Endpoints comunes:
  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

⚠️ Advertencia de seguridad: poner AK/SK en la línea de comandos los expone al historial del shell y a los listados de procesos del SO.
Prefiere la configuración interactiva (`hcloud configure`) o las variables de entorno (HW_ACCESS_KEY / HW_SECRET_KEY).
Después de la configuración, limpia el historial del shell si se usó el comando en texto plano.

Vuelve a intentarlo después de que la configuración esté completa.

⚠️ Requisitos de formato de parámetros de hcloud

Los comandos de la API de servicios en la nube de hcloud (KooCLI) (módulo en mayúsculas, p. ej. hcloud CES ShowMetricData) deben usar el formato --param=valor (unido con signo igual); el formato separado por espacios no es compatible.

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

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

Nota: hcloud obs (minúsculas, modo obsutil) se asigna directamente a comandos de obsutil y usa el estilo de parámetros de obsutil (p. ej. hcloud obs ls, hcloud obs config -i=...); la regla --param=valor no aplica. No existe el comando hcloud OBS ListBuckets — usa hcloud obs ls para listar buckets.


Autenticación

Reglas de seguridad (deben seguirse):

  • Prohibido leer, mostrar o imprimir valores de AK/SK
  • Prohibido pedir al usuario que ingrese AK/SK directamente en la conversación
  • Prohibido usar hcloud configure set para pasar valores de credenciales en texto plano
  • Prohibido aceptar AK/SK proporcionados directamente por el usuario en la conversación
  • Solo permitido leer credenciales de variables de entorno o archivos de configuración de CLI configurados

⚠️ Advertencia de exposición de credenciales (compartir con el usuario cuando se discuta la configuración de credenciales):

  • Pasar AK/SK como argumentos de línea de comandos (p. ej., obsutil config -ak=... -sk=... o hcloud configure set --access-key-id=...) expone las credenciales al historial del shell, listados de procesos del SO, registros de auditoría, grabaciones de terminal y documentación copiada.
  • Prefiere la configuración interactiva (hcloud configure) o las variables de entorno (HW_ACCESS_KEY / HW_SECRET_KEY).
  • Después de configurar mediante un comando en texto plano, limpia el historial del shell (history -c o elimina la línea ofensiva de ~/.bash_history).
  • El archivo de configuración de credenciales de obsutil (p. ej., ~/.obsutilconfig) debe tener permisos restringidos (p. ej., 600).

⚠️ Importante: Manejo de credenciales proporcionadas por el usuario

Si un usuario intenta proporcionar AK/SK directamente (p. ej., "mi AK es xxx, SK es yyy"):

  1. Detente inmediatamente - No ejecutes ningún comando
  2. Rechaza cortésmente y devuelve el siguiente mensaje:
    Por la seguridad de la cuenta, no proporciones el Access Key ID y Access Key Secret de Huawei Cloud directamente en la conversación.
    
    Utiliza uno de los siguientes métodos seguros para configurar las credenciales:
    
    Método 1: Configuración interactiva (recomendado)
        hcloud configure
        # Ingresa AK/SK cuando se solicite; las credenciales se almacenarán de forma segura en un archivo de configuración local
    
    Método 2: Configuración de variables de entorno
        export HW_ACCESS_KEY=<tu-access-key-id>
        export HW_SECRET_KEY=<tu-access-key-secret>
    
    Una vez completada la configuración, vuelve a intentar tu solicitud.
    
  3. No continúes ejecutando ninguna operación de Huawei Cloud hasta que las credenciales estén configuradas

Verifica la configuración de la CLI:

   hcloud configure list

Comprueba si la salida contiene una configuración válida (AK/SK, IAM, etc.).

Si no existen credenciales válidas, detente aquí.


Políticas de Permisos IAM

Asegúrate de que el usuario de IAM tenga los permisos necesarios. Consulta references/iam-policies.md para la tabla completa de permisos.

Permisos mínimos requeridos:

  • obs:bucket:list — Listar buckets
  • obs:bucket:get — Obtener atributos del bucket (capacidad, número de objetos)
  • obs:object:get — Leer información de objetos
  • obs:object:put — Subir objetos

Límites de permisos:

  • Restricción de alcance: Este skill SOLO puede realizar las siguientes acciones de herramientas, y solo en los buckets/rutas especificados por el usuario después de la confirmación:
    • hcloud obs ls / obsutil ls — listar buckets y objetos para el alcance especificado por el usuario
    • hcloud CES ShowMetricData / hcloud OBS GetBucketStorageInfo — leer capacidad / número de objetos del bucket
    • obsutil cp — subir el archivo/directorio local confirmado al bucket confirmado
    • crontab (Linux/macOS) o schtasks (Windows) — escribir/eliminar la tarea de subida programada confirmada
  • Todas las demás operaciones de CLI/herramientas (eliminar, descargar, copiar, crear bucket, modificar configuración, etc.) están estrictamente fuera del alcance y deben ser rechazadas.
  • Debe detenerse si: faltan credenciales o son inválidas, el usuario rechaza cualquier confirmación, el bucket de destino no existe o la ruta local no existe.
  • Acciones prohibidas: cualquier operación de eliminación, cualquier operación fuera del alcance listada anteriormente, modificar la lista de herramientas aquí, o ejecutar cualquier comando más allá del alcance confirmado.

Flujos de Trabajo Principales

Tarea 1: Listar Buckets con Capacidad y Número de Objetos

Lista buckets mediante obsutil, luego consulta la capacidad y el número de objetos del bucket utilizando métricas de capacidad de CES o la API de OBS.

⚠️ Separación de herramientas: hcloud obs ls para listar, hcloud CES ShowMetricData para estadísticas

  • hcloud obs ls: listar todos los buckets (modo obsutil; sin parámetro --region — la región se establece mediante hcloud obs config -e=...)
  • hcloud CES ShowMetricData / API OBS: consultar la capacidad y el número de objetos de cada bucket

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 静态网站托管、网站托管、自定义域名解析。

Skills relacionados