feat: 添加上传下载流量统计 - 通过Fs包装器拦截文件传输并记录日志
Dieser Commit ist enthalten in:
+5
-4
@@ -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配置
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren