CloudDrive2 Cloud-Speicher-Management
Führe Dateioperationen und Systemverwaltung auf Cloud-Speichern (115/Baidu Netdisk/Xunlei/lokale Verzeichnisse) über den lokalen CloudDrive2 gRPC-Dienst durch. Dienstadresse 127.0.0.1:19798, bereits angemeldet, Authentifizierung erfolgt automatisch.
Voraussetzungen
- Der Dienst läuft dauerhaft, kein Start erforderlich
- Authentifizierung automatisch: Bevorzugt
CD2_TOKEN/CLOUDDRIVEAPIUmgebungsvariablen → API-Token in/opt/clouddrive2/config/api_tokens.json→GET token.txt. Normalerweise sofort nutzbar. - Tool-Verzeichnis:
/root/.openclaw/workspace/skills/clouddrive2/cd2.py— Universeller Aufrufer, unterstützt alle 227 RPCscd2cmd.py— Bequeme Kurzbefehle für häufige Operationengen/proto/— Generierte Python gRPC-Clienten (nicht ändern)clouddrive.proto— Neueste Proto-Definition (1.0.17)docs/— Offizielle gRPC-Dokumentations-Snapshots (Handbuch bei Fehlern)
Offizielle Dokumentation / Handbuch
- Lokaler Snapshot:
docs/CloudDrive2_gRPC_API_Guide_de.md(wird automatisch mit offiziellen Updates synchronisiert) - Bei Fehlern/bei Feldsuche zuerst dort nachschlagen: Methodennamen, Anfrage-/Antwortfelder, Enum-Werte, häufige Fehlerbeschreibungen sind enthalten
- Online-Version: https://www.clouddrive2.com/api/CloudDrive2_gRPC_API_Guide.html
- Automatisches Update: Automatische Prüfung auf Dokument-/Proto-Änderungen jeden Montag; bei Updates wird der Client automatisch neu generiert und an drei Stellen synchronisiert (dieses Arbeitsverzeichnis,
~/.agents/skills/clouddrive2, GitHubeutopiazen/clouddrive2-skill). Änderungszusammenfassung wird inscripts/cd2doc-watch/changes/geschrieben.
Verwendung
A. Kurzbefehle (cd2cmd.py, bevorzugt für häufige Operationen)
cd /root/.openclaw/workspace/skills/clouddrive2
python3 cd2cmd.py ls /115open # Verzeichnis auflisten: Name<TAB>Größe<TAB>Typ
python3 cd2cmd.py ls / --refresh # Cache-Aktualisierung erzwingen
python3 cd2cmd.py find /115open 电影 # Fuzzy-Suche
python3 cd2cmd.py info /115open/xx.mkv # Dateidetails
python3 cd2cmd.py mkdir /115open NeuerOrdner
python3 cd2cmd.py mv /115open/a.mkv /115open/电影 # Verschieben (Konfliktstandard: Umbenennen)
python3 cd2cmd.py cp /115open/a.mkv /115open/备份 --policy overwrite
python3 cd2cmd.py rm /115open/垃圾.mkv # Löschen (Papierkorb)
python3 cd2cmd.py rmperm /115open/垃圾.mkv # Endgültig löschen
python3 cd2cmd.py rn /115open/a.mkv b.mkv # Umbenennen
python3 cd2cmd.py dl /115open/a.mkv # Download-URL + curl/wget
python3 cd2cmd.py mounts | clouds | copy-tasks # Mount-Punkte/Cloud-Drives/Kopieraufgaben
python3 cd2cmd.py dl-tasks | ul-tasks # Download-/Upload-Queue
python3 cd2cmd.py backups # Backup-Status
python3 cd2cmd.py settings | acct | tokens # Einstellungen/Konto/Token
python3 cd2cmd.py token-create Name --perm allow_read allow_list
python3 cd2cmd.py unlock /path password [--permanent]
python3 cd2cmd.py stat # Systeminformationen
B. Beliebiges RPC (cd2.py) – Alle Funktionen der Dokumentation
python3 cd2.py <RpcName> [field=value ...] [--json|--raw|--no-auth|--list]
- Feldnamen in camelCase (wie in der Dokumentation), Verschachtelung mit
.:subField=value - Werte werden als JSON geparst (Zahlen/Bool/Arrays automatisch konvertiert), Streaming-Methoden werden automatisch aggregiert
--listgibt alle 227 Methodennamen aus- Häufige Beispiele:
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=NeuesVerzeichnis
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
Schlüsselkonzepte
- Pfad-Präfixe (Cloud-Stammverzeichnis):
/115open,/百度网盘,/迅雷云盘,/mnt(lokaler Datenträger),/CD2(lokal /ssd/CD2) - Konfliktstrategie
conflictPolicy:Overwrite=0 / Rename=1 / Skip=2 - Cloud-Liste:
python3 cd2.py GetAllCloudApis - Mount-Punkte: Standardmäßig ist nur
/mnt/115opengemountet,GetMountPointszum Anzeigen - Löschen geht standardmäßig in den Papierkorb;
DeleteFilesPermanently/rmpermlöscht endgültig - Download:
GetDownloadUrlPathgibt die zusammengesetzte URL zurück (priorisiertdirectUrl, sonst enthältdownloadUrlPathPlatzhalter{SCHEME}/{HOST}/{PREVIEW}, die ersetzt werden müssen); Adresse127.0.0.1:19798 - Große Dateioperationen (Verschieben/Kopieren über Cloud-Grenzen hinweg) erzeugen Hintergrundaufgaben, die mit
GetCopyTasksverfolgt werden
Authentifizierungs-Fehlerbehebung
No valid auth token→ Zertifikatsdatei/Umgebungsvariable fehlt, prüfen obapi_tokens.jsonexistiert- 2FA-Hinweis →
CD2_TOTPerforderlich oder API-Token verwenden - Öffentliche Methoden (GetSystemInfo/GetToken/Login usw.) benötigen keine Authentifizierung, verwende
--no-auth
Validierung
Nach jeder Operation sollte der Erfolg anhand der Ergebnisfelder bestätigt werden:
- Erstellen/Verschieben/Kopieren/Löschen → gibt
FileOperationResultmitsuccess/errorMessagezurück - Auflisten/Suchen → Anzahl der Einträge und Ziel prüfen
- Bei Fehlschlag zuerst
errorMessageansehen, dann erneut versuchen oder Aufgabenstatus prüfen