#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 向量记忆系统 - 飞书云盘同步脚本 功能:将本地备份自动上传到飞书云盘 """ import os import sys import json import subprocess from datetime import datetime from pathlib import Path # 飞书云盘配置 FOLDER_TOKEN = "C9jPf8MVwlvWgldZ7VHcHrLTnCf" # openclaw 文件夹 def get_latest_backup(): """获取最新备份文件""" backup_dir = Path("./backups") if not backup_dir.exists(): return None # 找最新的 JSON 备份 json_files = list(backup_dir.glob("memory_backup_*.json")) if not json_files: return None return max(json_files, key=os.path.getmtime) def upload_to_feishu(file_path: str): """上传文件到飞书云盘""" try: # 使用飞书 CLI 或 API 上传 # 这里需要飞书开放平台的应用权限 print(f"📤 准备上传: {file_path}") print(f"⚠️ 飞书云盘上传需要应用权限,请手动上传") print(f" 1. 打开飞书云盘") print(f" 2. 进入 openclaw 文件夹") print(f" 3. 上传文件: {file_path}") return False except Exception as e: print(f"❌ 上传失败: {e}") return False def sync_to_feishu(): """同步最新备份到飞书""" print("=" * 50) print("🧠 向量记忆系统 - 飞书云盘同步") print("=" * 50) # 获取最新备份 latest = get_latest_backup() if not latest: print("❌ 没有找到备份文件,请先运行: python3 memory_backup.py backup") return print(f"\n📦 最新备份: {latest.name}") print(f" 大小: {latest.stat().st_size / 1024:.1f} KB") print(f" 时间: {datetime.fromtimestamp(latest.stat().st_mtime)}") # 提示用户手动上传 print("\n" + "=" * 50) print("📋 手动上传步骤:") print("=" * 50) print(f"1. 打开飞书 → 云空间 → openclaw 文件夹") print(f"2. 点击「上传」按钮") print(f"3. 选择文件: {latest.absolute()}") print(f"4. 完成!") print("=" * 50) def main(): import argparse parser = argparse.ArgumentParser(description="飞书云盘同步工具") parser.add_argument("command", nargs="?", default="sync", help="命令: sync(同步), latest(查看最新)") args = parser.parse_args() if args.command == "sync": sync_to_feishu() elif args.command == "latest": latest = get_latest_backup() if latest: print(f"📦 最新备份: {latest.name}") print(f" 路径: {latest.absolute()}") else: print("❌ 没有找到备份文件") if __name__ == "__main__": main()