调整类重载,修复部分BUG,增加请求头检查

This commit is contained in:
UnknownObject
2026-08-05 14:15:47 +08:00
parent 557cc8b995
commit 0d50588ea7
30 changed files with 1816 additions and 157 deletions
+85
View File
@@ -0,0 +1,85 @@
// ServerTest.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include "ServerCore.h"
#include "ServerLogger.h"
#include "ServerProcessor.h"
#include "TempFileManager.h"
#include "SyncFileReceiver.h"
#include "UNSResponseBuilder.h"
#pragma comment(lib, "UNSWebServerCore.lib")
class DemoProcessor : public ServerProcessor
{
public:
uns::ResponsePtr Processor(uns::RequestPtr request) override
{
return uns::ResponseBuilder().OK().Body(request->GetDataS())();
}
};
class FileUploadDemo : public SyncFileReceiver
{
public:
FileUploadDemo()
{
SyncFileReceiver::SetTempRoot("F:\\UNSWebServerCore\\cache");
SyncFileReceiver::SetFileTimeout(30s, 60s);
}
public:
uns::Status PreCheckRequest(uns::RequestPtr request) override
{
SCLOGF_INFO("Upload Request, Size: {}", request->GetContentLength());
return uns::kOK;
}
bool PreCheckForm(uns::FormPartPtr form) override
{
SCLOGF_INFO("Form Size: {}", form->GetDataSize());
return true;
}
uns::ResponsePtr ProcessFiles(TempFileManager& file_info, SFR_FileMap file_map, const std::string& tmp_root, uns::RequestPtr request) override
{
SCLOGF_INFO("Current File Count: {}", file_map.size());
for (const auto& [on, sn] : file_map)
{
SCLOGF_INFO("Current File: {} --> {}", on, sn);
file_info.ActiveFile(sn); //Active File
}
SCLOGF_INFO("Global File Count: {}", file_info.GetFileCount());
for (const auto& info : file_info.GetAllFileInfos())
{
SCLOGF_INFO("Global File [{}], Storaged AS [{}], Size: {}, Upload AT: {}", info.GetOriginalFileName(), info.GetStorageFileName(), info.GetFileSize(), info.GetUploadTime().Format("%Y-%m-%d %H:%M:%S"));
}
return uns::ResponseBuilder().OK()();
}
};
int main()
{
SCLOG_CONSOLE_INIT(uns::llAll);
{
ServerCore core(12345);
core.AppenedFileReceiver("/upload", std::make_shared<FileUploadDemo>(), uns::H_POST);
core.AppenedProcessor(uns::url_all, std::make_shared<DemoProcessor>(), uns::H_ALL_ENABLED);
core.ThreadRun();
while (getchar() != '0')
std::this_thread::sleep_for(0.1s);
core.Stop();
}
SCLOG_CLOSE();
return 0;
}