调整类重载,修复部分BUG,增加请求头检查
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user