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.jsonlocal →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 RPCcd2cmd.py— Encapsulation pratique des commandes courantesgen/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, GitHubeutopiazen/clouddrive2-skill). Le résumé des modifications est écrit dansscripts/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.
--listaffiche 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/115openest monté ; utilisezGetMountPointspour voir. - Suppression : Par défaut, dans la corbeille ;
DeleteFilesPermanently/rmpermpour une suppression définitive. - Téléchargement :
GetDownloadUrlPathrenvoie une URL construite (prioritédirectUrl, sinondownloadUrlPathavec des espaces réservés{SCHEME}/{HOST}/{PREVIEW}à remplacer) ; adresse127.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 deapi_tokens.json.- Invite 2FA → Nécessite
CD2_TOTPou 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
FileOperationResultavecsuccess/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.