86 lines
2.3 KiB
Python
86 lines
2.3 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
定时备份 + 飞书云盘上传
|
|
自动执行备份并尝试上传到飞书
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
import json
|
|
from datetime import datetime
|
|
from pathlib import Path
|
|
|
|
# 项目路径
|
|
PROJECT_DIR = os.path.expanduser("~/openclaw-memory-vector")
|
|
sys.path.insert(0, PROJECT_DIR)
|
|
|
|
# 飞书配置
|
|
FEISHU_FOLDER_TOKEN = "GE2hfjECFlSSaedOFNccWhEknUf" # 向量记忆系统文件夹
|
|
|
|
|
|
def upload_to_feishu(file_path: str):
|
|
"""上传文件到飞书云盘"""
|
|
from feishu_drive_file import upload as feishu_upload
|
|
|
|
file_name = os.path.basename(file_path)
|
|
file_size = os.path.getsize(file_path)
|
|
|
|
# 读取文件内容
|
|
with open(file_path, 'rb') as f:
|
|
file_content = f.read()
|
|
|
|
import base64
|
|
file_content_b64 = base64.b64encode(file_content).decode('utf-8')
|
|
|
|
try:
|
|
result = feishu_upload(
|
|
file_path=file_path,
|
|
parent_node=FEISHU_FOLDER_TOKEN
|
|
)
|
|
return result
|
|
except Exception as e:
|
|
print(f"⚠️ 自动上传暂不可用: {e}")
|
|
return None
|
|
|
|
|
|
def run_backup():
|
|
"""执行备份"""
|
|
print(f"\n{'='*60}")
|
|
print(f"🧠 定时备份任务 | {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
|
|
print(f"{'='*60}")
|
|
|
|
# 切换到项目目录
|
|
os.chdir(PROJECT_DIR)
|
|
|
|
# 设置环境变量
|
|
os.environ["SILICONFLOW_API_KEY"] = "sk-fpjdtxbxrhtekshircjhegstloxaodriekotjdyzzktyegcl"
|
|
|
|
# 导入模块
|
|
from vector_memory import VectorMemorySystem
|
|
from memory_backup import MemoryBackup
|
|
|
|
# 执行备份
|
|
api_key = os.getenv("SILICONFLOW_API_KEY")
|
|
vm = VectorMemorySystem(api_key=api_key)
|
|
backup = MemoryBackup()
|
|
result = backup.backup_all(vm)
|
|
|
|
print(f"\n✅ 本地备份完成!")
|
|
print(f" - JSON: {result['json']}")
|
|
print(f" - Markdown: {result['markdown']}")
|
|
|
|
# 上传到飞书(尝试)
|
|
print(f"\n📤 尝试上传到飞书云盘...")
|
|
json_file = result['json']
|
|
|
|
# 注意:飞书上传需要应用权限,这里只是记录
|
|
print(f" 📋 备份文件: {json_file}")
|
|
print(f" 💡 如需自动上传,请在飞书云盘手动上传或配置应用权限")
|
|
|
|
return result
|
|
|
|
|
|
if __name__ == "__main__":
|
|
run_backup()
|