@@ -101,192 +101,18 @@ BOOL XEngine_Task_HttpCenter(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int
101101 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 业务客户端:%s,请求的API不支持" ), lpszClientAddr);
102102 return FALSE ;
103103 }
104-
105- LPCTSTR lpszEvent = _T (" Event" );
106- LPCTSTR lpszQuery = _T (" Query" );
107- LPCTSTR lpszNotify = _T (" Pass" );
108-
109- LPCTSTR lpszUPFile = _T (" UPFile" );
110- LPCTSTR lpszDLFile = _T (" DLFile" );
111- LPCTSTR lpszFile = _T (" File" );
112-
113104 // 通知类型.用于多服务器
114- if (0 == _tcsnicmp (lpszNotify , tszAPIMethod, _tcslen (lpszNotify )))
105+ if (0 == _tcsnicmp (XENGINE_STORAGE_APP_TASK_PASS , tszAPIMethod, _tcslen (XENGINE_STORAGE_APP_TASK_PASS )))
115106 {
116- // 下载
117- if (0 == _tcsnicmp (lpszUPFile, tszAPIName, _tcslen (lpszUPFile)))
118- {
119- __int64x nFileSize = 0 ;
120- TCHAR tszFileName[MAX_PATH];
121- TCHAR tszFileHash[MAX_PATH];
122- TCHAR tszClientAddr[128 ];
123-
124- memset (tszFileName, ' \0 ' , MAX_PATH);
125- memset (tszFileHash, ' \0 ' , MAX_PATH);
126- memset (tszClientAddr, ' \0 ' , sizeof (tszClientAddr));
127-
128- XStorageProtocol_Proxy_ParseNotify (lpszMsgBuffer, nMsgLen, tszClientAddr, tszFileName, tszFileHash, &nFileSize);
129-
130- st_HDRParam.bIsClose = TRUE ;
131- st_HDRParam.nHttpCode = 200 ;
132-
133- RfcComponents_HttpServer_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
134- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
135- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" 业务客户端:%s,请求的上传文件通知协议成功,文件:%s,大小:%lld" ), lpszClientAddr, tszFileName, nFileSize);
136- }
137- else if (0 == _tcsnicmp (lpszDLFile, tszAPIName, _tcslen (lpszDLFile)))
138- {
139- __int64x nFileSize = 0 ;
140- TCHAR tszFileName[MAX_PATH];
141- TCHAR tszFileHash[MAX_PATH];
142- TCHAR tszClientAddr[128 ];
143-
144- memset (tszFileName, ' \0 ' , MAX_PATH);
145- memset (tszFileHash, ' \0 ' , MAX_PATH);
146- memset (tszClientAddr, ' \0 ' , sizeof (tszClientAddr));
147-
148- XStorageProtocol_Proxy_ParseNotify (lpszMsgBuffer, nMsgLen, tszClientAddr, tszFileName, tszFileHash, &nFileSize);
149-
150- st_HDRParam.bIsClose = TRUE ;
151- st_HDRParam.nHttpCode = 200 ;
152-
153- RfcComponents_HttpServer_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
154- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
155- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" 业务客户端:%s,请求的下载文件通知协议成功,文件:%s,大小:%lld" ), lpszClientAddr, tszFileName, nFileSize);
156- }
107+ XEngine_Task_Pass (tszAPIName, lpszClientAddr, lpszMsgBuffer, nMsgLen, pSt_HTTPParam, pptszListHdr, nHdrCount);
157108 }
158- else if (0 == _tcsnicmp (lpszQuery , tszAPIMethod, _tcslen (lpszQuery )))
109+ else if (0 == _tcsnicmp (XENGINE_STORAGE_APP_TASK_QUERY , tszAPIMethod, _tcslen (XENGINE_STORAGE_APP_TASK_QUERY )))
159110 {
160- // 文件查询类型
161- if (0 == _tcsnicmp (lpszFile, tszAPIName, _tcslen (lpszFile)))
162- {
163- // 查询文件列表
164- int nMsgLen = 10240 ;
165- TCHAR tszFileName[MAX_PATH];
166- TCHAR tszFileHash[MAX_PATH];
167- TCHAR tszTimeStart[128 ];
168- TCHAR tszTimeEnd[128 ];
169- TCHAR tszMsgBuffer[10240 ];
170-
171- memset (tszFileName, ' \0 ' , MAX_PATH);
172- memset (tszFileHash, ' \0 ' , MAX_PATH);
173- memset (tszTimeStart, ' \0 ' , sizeof (tszTimeStart));
174- memset (tszTimeEnd, ' \0 ' , sizeof (tszTimeEnd));
175- memset (tszMsgBuffer, ' \0 ' , sizeof (tszMsgBuffer));
176-
177- int nListCount = 0 ;
178- XSTORAGECORE_DBFILE** ppSt_ListFile;
179- XStorageProtocol_Core_REQQueryFile (lpszMsgBuffer, tszTimeStart, tszTimeEnd, tszFileHash);
180-
181- if (bIsSQL)
182- {
183- XStorageSQL_File_FileQuery (&ppSt_ListFile, &nListCount, tszTimeStart, tszTimeEnd, tszFileName, tszFileHash);
184- st_HDRParam.bIsClose = TRUE ;
185- st_HDRParam.nHttpCode = 200 ;
186-
187- XStorageProtocol_Core_REPQueryFile (tszMsgBuffer, &nMsgLen, &ppSt_ListFile, nListCount, tszTimeStart, tszTimeEnd);
188- RfcComponents_HttpServer_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszMsgBuffer, nMsgLen);
189- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
190- BaseLib_OperatorMemory_Free ((XPPPMEM)&ppSt_ListFile, nListCount);
191- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" 业务客户端:%s,请求查询文件列表成功,列表个数:%d" ), lpszClientAddr, nListCount);
192- }
193- else
194- {
195- st_HDRParam.bIsClose = TRUE ;
196- st_HDRParam.nHttpCode = 406 ;
197-
198- RfcComponents_HttpServer_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
199- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
200- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T (" 业务客户端:%s,请求查询文件列表失败,服务器没有启用这个功能" ), lpszClientAddr);
201- }
202- }
111+ XEngine_Task_Query (tszAPIName, lpszClientAddr, lpszMsgBuffer, nMsgLen, pSt_HTTPParam, pptszListHdr, nHdrCount);
203112 }
204- else if (0 == _tcsnicmp (lpszEvent , tszAPIMethod, _tcslen (lpszEvent )))
113+ else if (0 == _tcsnicmp (XENGINE_STORAGE_APP_TASK_EVENT , tszAPIMethod, _tcslen (XENGINE_STORAGE_APP_TASK_EVENT )))
205114 {
206- // 事件处理类型,上传事件,用于NGINX
207- if (0 == _tcsnicmp (lpszUPFile, tszAPIName, _tcslen (lpszUPFile)))
208- {
209- LPCTSTR lpszContentType = _T (" Content-Type" );
210- LPCTSTR lpszBoundaryStr = _T (" boundary=" );
211- TCHAR tszContentStr[MAX_PATH];
212- TCHAR tszBoundarTmp[MAX_PATH];
213- TCHAR tszFileDir[MAX_PATH];
214- TCHAR tszBoundarStr[512 ];
215- XSTORAGECORE_DBFILE st_DBFile;
216-
217- memset (tszContentStr, ' \0 ' , MAX_PATH);
218- memset (tszBoundarTmp, ' \0 ' , MAX_PATH);
219- memset (tszContentStr, ' \0 ' , MAX_PATH);
220- memset (tszFileDir, ' \0 ' , MAX_PATH);
221- memset (tszBoundarStr, ' \0 ' , sizeof (tszBoundarStr));
222- memset (&st_DBFile, ' \0 ' , sizeof (XSTORAGECORE_DBFILE));
223-
224- if (!RfcComponents_HttpHelp_GetField (&pptszListHdr, nHdrCount, lpszContentType, tszContentStr))
225- {
226- st_HDRParam.bIsClose = TRUE ;
227- st_HDRParam.nHttpCode = 400 ;
228-
229- RfcComponents_HttpServer_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
230- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
231- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 业务客户端:%s,请求的HTTP头内容不正确,没有类型字段" ), lpszClientAddr);
232- return FALSE ;
233- }
234- if (!BaseLib_OperatorString_FromStrGetKeyValue (tszContentStr, lpszBoundaryStr, NULL , tszBoundarTmp))
235- {
236- st_HDRParam.bIsClose = TRUE ;
237- st_HDRParam.nHttpCode = 400 ;
238-
239- RfcComponents_HttpServer_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
240- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
241- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 业务客户端:%s,请求的HTTP头内容不正确,没有Boundary值" ), lpszClientAddr);
242- return FALSE ;
243- }
244- _stprintf (tszBoundarStr, _T (" --%s\r\n " ), tszBoundarTmp);
245- XStorageProtocol_Core_REQUPEvent (lpszMsgBuffer, tszBoundarStr, st_DBFile.st_ProtocolFile .tszFileName , tszFileDir, st_DBFile.st_ProtocolFile .tszFileHash , &st_DBFile.st_ProtocolFile .nFileSize );
246-
247- if (st_ServiceCfg.st_XStorage .bRename )
248- {
249- memset (st_DBFile.st_ProtocolFile .tszFilePath , ' \0 ' , MAX_PATH);
250- _tcscpy (st_DBFile.st_ProtocolFile .tszFilePath , st_ServiceCfg.st_XStorage .tszFileDir );
251- }
252- else
253- {
254- memset (st_DBFile.st_ProtocolFile .tszFileName , ' \0 ' , MAX_PATH);
255- BaseLib_OperatorString_GetFileAndPath (tszFileDir, st_DBFile.st_ProtocolFile .tszFilePath , st_DBFile.st_ProtocolFile .tszFileName );
256- st_DBFile.st_ProtocolFile .tszFilePath [_tcslen (st_DBFile.st_ProtocolFile .tszFilePath ) - 1 ] = ' \0 ' ;
257- }
258-
259- if (bIsSQL)
260- {
261- if (XStorageSQL_File_FileInsert (&st_DBFile))
262- {
263- st_HDRParam.nHttpCode = 200 ;
264- RfcComponents_HttpServer_SendMsgEx (xhUPHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
265- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
266- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" 业务客户端:%s,处理NGINX代理上传文件成功,文件名:%s,大小:%lld" ), lpszClientAddr, tszFileDir, st_DBFile.st_ProtocolFile .nFileSize );
267- }
268- else
269- {
270- st_HDRParam.nHttpCode = 403 ;
271- RfcComponents_HttpServer_SendMsgEx (xhUPHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
272- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
273- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 业务客户端:%s,处理NGINX代理上传文件失败,插入数据库失败:%s,错误:%lX" ), lpszClientAddr, tszFileDir, XStorageDB_GetLastError ());
274- }
275- }
276- else
277- {
278- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T (" 业务客户端:%s,处理NGINX代理上传文件成功,文件名:%s,大小:%lld,服务器没有启用数据库,不插入" ), lpszClientAddr, tszFileDir, st_DBFile.st_ProtocolFile .nFileSize );
279- }
280-
281- if (st_ServiceCfg.st_XStorage .bRename )
282- {
283- TCHAR tszFileTmp[1024 ];
284- memset (tszFileTmp, ' \0 ' , sizeof (tszFileTmp));
285-
286- _stprintf (tszFileTmp, _T (" %s/%s" ), st_DBFile.st_ProtocolFile .tszFilePath , st_DBFile.st_ProtocolFile .tszFileName );
287- _trename (tszFileDir, tszFileTmp);
288- }
289- }
115+ XEngine_Task_Event (tszAPIName, lpszClientAddr, lpszMsgBuffer, nMsgLen, pSt_HTTPParam, pptszListHdr, nHdrCount);
290116 }
291117 return TRUE ;
292118}
0 commit comments