1
0

feat: 添加上传下载流量统计 - 通过Fs包装器拦截文件传输并记录日志

Dieser Commit ist enthalten in:
Your Name
2026-05-07 11:25:46 +08:00
Ursprung f86c517b16
Commit feb7e1f7af
2 geänderte Dateien mit 121 neuen und 4 gelöschten Zeilen
+5 -4
Datei anzeigen
@@ -134,7 +134,7 @@ func (s *Server) AuthUser(cc ftpserver.ClientContext, username, password string)
}
osFs := afero.NewOsFs()
boundedFs := afero.NewBasePathFs(osFs, ftpCfg.RootDir)
return boundedFs, nil
return newLoggingFs(boundedFs, s.db, "anonymous"), nil
}
// 数据库用户认证
@@ -195,16 +195,17 @@ func (s *Server) AuthUser(cc ftpserver.ClientContext, username, password string)
return nil, fmt.Errorf("创建用户目录失败: %v", err)
}
// 返回 afero.Fs 作为 ClientDriver
// 返回 afero.Fs 作为 ClientDriver(带日志包装)
osFs := afero.NewOsFs()
boundedFs := afero.NewBasePathFs(osFs, user.HomeDir)
loggedFs := newLoggingFs(boundedFs, s.db, username)
// 根据权限设置只读
if user.Permissions == "read" {
return afero.NewReadOnlyFs(boundedFs), nil
return afero.NewReadOnlyFs(loggedFs), nil
}
return boundedFs, nil
return loggedFs, nil
}
// GetTLSConfig 获取TLS配置