eutopiazen/clouddrive2

Gestion de CloudDrive2 : lister, chercher, déplacer, copier, supprimer des fichiers, créer des dossiers, chiffrer, télécharger hors ligne, obtenir des liens de téléchargement, gérer les points de montage, les clouds, les sauvegardes, les tâches de transfert, les jetons API et les comptes via gRPC local (127.0.0.1:19798). Déclencheurs : 115, Baidu Netdisk, Xunlei, CloudDrive, CD2, téléchargement hors ligne, transfert, scraping, montage, strm.

Qu'est-ce que clouddrive2 ?

Cette compétence permet de contrôler entièrement CloudDrive2 via son service gRPC local (127.0.0.1:19798). Elle offre une interface en ligne de commande pour effectuer des opérations sur les fichiers (liste, recherche, déplacement, copie, suppression, renommage, création de dossiers), gérer les téléchargements hors ligne, obtenir des liens de téléchargement, et administrer les comptes, jetons API, points de montage, sauvegardes et tâches de transfert. Elle supporte les fournisseurs de cloud tels que 115, Baidu Netdisk et Xunlei. L'authentification est automatisée via des variables d'environnement ou un fichier de jetons API local. La compétence inclut une bibliothèque complète de 227 appels RPC, avec des commandes simplifiées pour les tâches courantes et un accès direct à toutes les méthodes via un appelant générique. Elle est conçue pour être utilisée avec Claude Code, Cursor, Codex ou tout agent capable d'exécuter des scripts Python et de communiquer avec un service gRPC. La documentation officielle est synchronisée automatiquement chaque semaine pour garantir la compatibilité.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/eutopiazen/clouddrive2-skill/tree/main

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

CloudDrive2 Gestion de Cloud

Effectue des opérations sur les fichiers et la gestion système via le service gRPC CloudDrive2 local (115/Baidu Netdisk/Xunlei/répertoire local). Adresse du service : 127.0.0.1:19798. Connecté, authentification automatique.

Prérequis

  • Le service tourne en permanence, pas besoin de le démarrer.
  • Authentification automatique : priorité à la variable d'environnement CD2_TOKEN/CLOUDDRIVEAPI → jeton API dans /opt/clouddrive2/config/api_tokens.json local → GET token.txt. Généralement directement disponible.
  • Répertoire des outils : /root/.openclaw/workspace/skills/clouddrive2/
    • cd2.py — Appelant générique, supporte les 227 RPC
    • cd2cmd.py — Encapsulation pratique des commandes courantes
    • gen/proto/ — Client Python gRPC généré (ne pas modifier)
    • clouddrive.proto — Dernière définition proto (1.0.17)
    • docs/ — Capture de la documentation officielle gRPC (manuel en cas d'erreur)

Documentation officielle

  • Capture locale : docs/CloudDrive2_gRPC_API_Guide_zh-CN.md (synchronisé automatiquement avec les mises à jour officielles)
  • En cas d'erreur ou pour chercher un champ, consultez-la en priorité : noms de méthodes, champs de requête/réponse, valeurs d'énumération, descriptions d'erreurs courantes.
  • Version en ligne : https://www.clouddrive2.com/api/CloudDrive2_gRPC_API_Guide.html
  • Mise à jour automatique : Tous les lundis, détection automatique des changements de documentation/proto. En cas de mise à jour, régénération automatique du client et synchronisation des trois endroits (ce répertoire de travail, ~/.agents/skills/clouddrive2, GitHub eutopiazen/clouddrive2-skill). Le résumé des modifications est écrit dans scripts/cd2doc-watch/changes/

Utilisation

A. Commandes rapides (cd2cmd.py, pour les opérations fréquentes)

cd /root/.openclaw/workspace/skills/clouddrive2
python3 cd2cmd.py ls /115open            # Lister le répertoire : nom<TAB>taille<TAB>type
python3 cd2cmd.py ls / --refresh         # Forcer le rafraîchissement du cache
python3 cd2cmd.py find /115open 电影     # Recherche floue
python3 cd2cmd.py info /115open/xx.mkv   # Détails du fichier
python3 cd2cmd.py mkdir /115open 新文件夹
python3 cd2cmd.py mv /115open/a.mkv /115open/电影        # Déplacer (par défaut, renommer en cas de conflit)
python3 cd2cmd.py cp /115open/a.mkv /115open/备份 --policy overwrite
python3 cd2cmd.py rm /115open/垃圾.mkv                    # Supprimer (corbeille)
python3 cd2cmd.py rmperm /115open/垃圾.mkv                # Supprimer définitivement
python3 cd2cmd.py rn /115open/a.mkv b.mkv                # Renommer
python3 cd2cmd.py dl /115open/a.mkv                      # URL de téléchargement + curl/wget
python3 cd2cmd.py mounts | clouds | copy-tasks           # Points de montage/Clouds/Tâches de copie
python3 cd2cmd.py dl-tasks | ul-tasks                    # Files de téléchargement/téléversement
python3 cd2cmd.py backups                                # Statut des sauvegardes
python3 cd2cmd.py settings | acct | tokens               # Paramètres/Compte/Jetons
python3 cd2cmd.py token-create 名字 --perm allow_read allow_list
python3 cd2cmd.py unlock /path 密码 [--permanent]
python3 cd2cmd.py stat                                   # Informations système

B. RPC arbitraire (cd2.py) — toutes les fonctionnalités de la documentation

python3 cd2.py <RpcName> [field=value ...] [--json|--raw|--no-auth|--list]
  • Les noms de champs utilisent le camelCase (conforme à la documentation), les champs imbriqués utilisent . : subField=value
  • Les valeurs sont analysées en JSON (nombres/bool/tableaux automatiquement convertis), les méthodes de streaming sont agrégées automatiquement.
  • --list affiche la liste des 227 noms de méthodes.
  • Exemples courants :
python3 cd2.py GetSubFiles path=/115open forceRefresh=true
python3 cd2.py FindFileByPath parentPath=/115open path=/115open/电影/xxx.mkv
python3 cd2.py GetSearchResults searchFor=电影 path=/ fuzzyMatch=true
python3 cd2.py CreateFolder parentPath=/115open folderName=新目录
python3 cd2.py RenameFile theFilePath=/115open/a.mkv newName=b.mkv
python3 cd2.py MoveFile theFilePaths=/115open/a.mkv destPath=/115open/电影 conflictPolicy=Rename
python3 cd2.py CopyFile theFilePaths=/115open/a.mkv destPath=/115open/备份 conflictPolicy=Skip
python3 cd2.py DeleteFiles path=/115open/垃圾1.mkv path=/115open/垃圾2.mkv
python3 cd2.py GetMountPoints
python3 cd2.py GetAllCloudApis
python3 cd2.py GetDownloadUrlPath path=/115open/a.mkv preview=false
python3 cd2.py GetCopyTasks
python3 cd2.py BackupGetAll
python3 cd2.py GetAccountStatus
python3 cd2.py ListTokens
python3 cd2.py GetSystemSettings

Concepts clés

  • Préfixe de chemin (racine du cloud) : /115open, /百度网盘, /迅雷云盘, /mnt (disque local), /CD2 (local /ssd/CD2)
  • Stratégie de conflit conflictPolicy : Overwrite=0 / Rename=1 / Skip=2
  • Liste des clouds : python3 cd2.py GetAllCloudApis
  • Points de montage : Par défaut, seul /mnt/115open est monté ; utilisez GetMountPoints pour voir.
  • Suppression : Par défaut, dans la corbeille ; DeleteFilesPermanently/rmperm pour une suppression définitive.
  • Téléchargement : GetDownloadUrlPath renvoie une URL construite (priorité directUrl, sinon downloadUrlPath avec des espaces réservés {SCHEME}/{HOST}/{PREVIEW} à remplacer) ; adresse 127.0.0.1:19798.
  • Opérations sur les gros fichiers (déplacement/copie entre clouds) génèrent des tâches en arrière-plan ; suivez-les avec GetCopyTasks.

Dépannage de l'authentification

  • No valid auth token → Fichier de jeton ou variable d'environnement manquant ; vérifiez l'existence de api_tokens.json.
  • Invite 2FA → Nécessite CD2_TOTP ou utilisation d'un jeton API.
  • Les méthodes publiques (GetSystemInfo/GetToken/Login, etc.) ne nécessitent pas d'authentification ; ajoutez --no-auth.

Validation

Après chaque opération, confirmez le succès via les champs de résultat :

  • Création/Déplacement/Copie/Suppression → Retourne FileOperationResult avec success/errorMessage.
  • Liste/Recherche → Vérifiez le nombre d'entrées et la cible.
  • En cas d'échec, consultez d'abord errorMessage, puis décidez de réessayer ou de consulter le statut de la tâche.

Skills associés