feat: 添加三个重要补丁
补丁 1: 分块读取与流式传输 - 8KB 分块读取大文件,避免内存飙升 - 流式计算文件哈希,无需加载完整内容 - 差异对比限制,大文件只显示头尾各 500 行 - 新增 chunked 参数支持流式传输 补丁 2: .lobsterignore 机制 - 创建 IgnorePattern 类实现模式匹配 - 支持 .lobsterignore 文件配置 - 添加默认忽略规则(.DS_Store, node_modules 等) - 支持通配符匹配(*, ?, 目录匹配) - 新增 API: GET /api/ignore/patterns/, POST /api/ignore/reload/ 补丁 3: 操作溯源(Audit Log) - 新增 SyncHistory 模型记录同步历史 - 创建 AuditLogger 类用于记录操作 - 所有同步操作自动记录日志 - 记录操作者、版本变化、哈希变化、执行时间等 - 新增 API: GET /api/history/ 更新内容: - models.py: 新增 SyncHistory 模型 - services.py: 新增 IgnorePattern, AuditLogger, 分块读取方法 - views.py: 所有同步操作添加日志记录, 新增历史和忽略规则接口 - serializers.py: 新增 SyncHistorySerializer - urls.py: 新增历史和忽略规则路由 - .lobsterignore.example: 示例忽略文件 - CHANGELOG.md: 详细更新日志
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
from rest_framework import serializers
|
||||
from .models import LobsterMemory
|
||||
from .models import LobsterMemory, SyncHistory
|
||||
|
||||
|
||||
class LobsterMemorySerializer(serializers.ModelSerializer):
|
||||
@@ -22,6 +22,35 @@ class LobsterMemorySerializer(serializers.ModelSerializer):
|
||||
read_only_fields = ['id', 'created_at', 'updated_at']
|
||||
|
||||
|
||||
class SyncHistorySerializer(serializers.ModelSerializer):
|
||||
"""同步历史序列化器"""
|
||||
|
||||
action_display = serializers.CharField(source='get_action_display', read_only=True)
|
||||
status_display = serializers.CharField(source='get_status_display', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = SyncHistory
|
||||
fields = [
|
||||
'id',
|
||||
'lobster_id',
|
||||
'file_path',
|
||||
'action',
|
||||
'action_display',
|
||||
'status',
|
||||
'status_display',
|
||||
'old_version',
|
||||
'new_version',
|
||||
'old_hash',
|
||||
'new_hash',
|
||||
'file_size',
|
||||
'operator',
|
||||
'error_message',
|
||||
'execution_time',
|
||||
'created_at',
|
||||
]
|
||||
read_only_fields = ['id', 'created_at']
|
||||
|
||||
|
||||
class FileDiffSerializer(serializers.Serializer):
|
||||
"""文件差异序列化器"""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user