@@ -9,32 +9,59 @@ XHTHREAD Session_Action_Thread()
99 Session_Action_GetAll (&ppxhToken, &nListCount);
1010 for (int i = 0 ; i < nListCount; i++)
1111 {
12- XCLIENT_APIFILE st_TaskInfo = {};
13- XHANDLE xhAction = Session_Action_GetToken ((*ppxhToken)[i]);
14-
15- if (!APIClient_File_Query (xhAction, &st_TaskInfo))
16- {
17- Session_Action_Delete ((*ppxhToken)[i]);
18- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X (" 转录动作线程:查询文件传输信息失败,句柄:%lld,错误:%lX" ), (*ppxhToken)[i], Session_GetLastError ());
19- continue ;
20- }
2112 XENGINE_ACTIONINFO st_ActionInfo = {};
2213 Session_Action_GetInfo ((*ppxhToken)[i], &st_ActionInfo);
23- if (ENUM_XCLIENT_APIHELP_FILE_STATUS_COMPLETE == st_TaskInfo.en_DownStatus )
24- {
25- APIClient_File_Delete (xhAction);
26- Session_Action_Delete ((*ppxhToken)[i]);
27- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 转录动作线程:完成文件转录下载,句柄:%lld,URL:%s,Bucket:%s,FileName:%s" ), (*ppxhToken)[i], st_ActionInfo.tszFileUrl , st_ActionInfo.tszBucketStr , st_ActionInfo.tszFileName );
28- }
29- else if (ENUM_XCLIENT_APIHELP_FILE_STATUS_DOWNLOADDING == st_TaskInfo.en_DownStatus || ENUM_XCLIENT_APIHELP_FILE_STATUS_INIT == st_TaskInfo.en_DownStatus )
14+
15+ if (0 == st_ActionInfo.byType || 1 == st_ActionInfo.byType )
3016 {
31- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 转录动作线程:文件转录进行中,句柄:%lld,URL:%s,Bucket:%s,FileName:%s,大小:%lf,已处理大小:%lf" ), (*ppxhToken)[i], st_ActionInfo.tszFileUrl , st_ActionInfo.tszBucketStr , st_ActionInfo.tszFileName , st_TaskInfo.dlTotal , st_TaskInfo.dlNow );
17+ XCLIENT_APIFILE st_TaskInfo = {};
18+ XHANDLE xhAction = Session_Action_GetToken ((*ppxhToken)[i]);
19+ if (!APIClient_File_Query (xhAction, &st_TaskInfo))
20+ {
21+ Session_Action_Delete ((*ppxhToken)[i]);
22+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X (" 转录动作线程:查询文件传输信息失败,句柄:%lld,错误:%lX" ), (*ppxhToken)[i], Session_GetLastError ());
23+ continue ;
24+ }
25+
26+ if (ENUM_XCLIENT_APIHELP_FILE_STATUS_COMPLETE == st_TaskInfo.en_DownStatus )
27+ {
28+ APIClient_File_Delete (xhAction);
29+ Session_Action_Delete ((*ppxhToken)[i]);
30+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 转录动作线程:完成文件转录下载,句柄:%lld,URL:%s,Bucket:%s,FileName:%s" ), (*ppxhToken)[i], st_ActionInfo.tszFileUrl , st_ActionInfo.tszBucketStr , st_ActionInfo.tszFileName );
31+ }
32+ else if (ENUM_XCLIENT_APIHELP_FILE_STATUS_DOWNLOADDING == st_TaskInfo.en_DownStatus || ENUM_XCLIENT_APIHELP_FILE_STATUS_INIT == st_TaskInfo.en_DownStatus )
33+ {
34+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 转录动作线程:文件转录进行中,句柄:%lld,URL:%s,Bucket:%s,FileName:%s,大小:%lf,已处理大小:%lf" ), (*ppxhToken)[i], st_ActionInfo.tszFileUrl , st_ActionInfo.tszBucketStr , st_ActionInfo.tszFileName , st_TaskInfo.dlTotal , st_TaskInfo.dlNow );
35+ }
36+ else
37+ {
38+ APIClient_File_Delete (xhAction);
39+ Session_Action_Delete ((*ppxhToken)[i]);
40+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 转录动作线程:文件转录失败,句柄:%lld,URL:%s,Bucket:%s,FileName:%s,错误:%lX" ), (*ppxhToken)[i], st_ActionInfo.tszFileUrl , st_ActionInfo.tszBucketStr , st_ActionInfo.tszFileName , Session_GetLastError ());
41+ }
3242 }
3343 else
3444 {
35- APIClient_File_Delete (xhAction);
36- Session_Action_Delete ((*ppxhToken)[i]);
37- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 转录动作线程:文件转录失败,句柄:%lld,URL:%s,Bucket:%s,FileName:%s,错误:%lX" ), (*ppxhToken)[i], st_ActionInfo.tszFileUrl , st_ActionInfo.tszBucketStr , st_ActionInfo.tszFileName , Session_GetLastError ());
45+ XHANDLE xhAction = Session_Action_GetToken ((*ppxhToken)[i]);
46+
47+ BTORRENT_DLOADER st_DLStatus = {};
48+ if (!BTorrent_DLoader_GetStatus (xhAction, &st_DLStatus))
49+ {
50+ Session_Action_Delete ((*ppxhToken)[i]);
51+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X (" 转录动作线程:查询文件传输信息失败,句柄:%lld,错误:%lX" ), (*ppxhToken)[i], Session_GetLastError ());
52+ continue ;
53+ }
54+
55+ if (ENUM_BTORRENT_DOWNLOAD_STATUS_FINISH == st_DLStatus.nDLStatus || ENUM_BTORRENT_DOWNLOAD_STATUS_SEEDING == st_DLStatus.nDLStatus )
56+ {
57+ BTorrent_DLoader_Close (xhAction);
58+ Session_Action_Delete ((*ppxhToken)[i]);
59+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 转录动作线程:完成文件转录下载,句柄:%lld,URL:%s,Bucket:%s,FileName:%s" ), (*ppxhToken)[i], st_ActionInfo.tszFileUrl , st_ActionInfo.tszBucketStr , st_ActionInfo.tszFileName );
60+ }
61+ else
62+ {
63+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 转录动作线程:文件转录进行中,句柄:%lld,URL:%s,Bucket:%s,FileName:%s,大小:%lf,已处理大小:%lf" ), (*ppxhToken)[i], st_ActionInfo.tszFileUrl , st_ActionInfo.tszBucketStr , st_ActionInfo.tszFileName , st_DLStatus.nDLoadTotal , st_DLStatus.nDLCount );
64+ }
3865 }
3966 }
4067 BaseLib_Memory_Free ((XPPPMEM)&ppxhToken, nListCount);
@@ -75,49 +102,73 @@ bool Storage_TaskAction(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lps
75102 return false ;
76103 }
77104 _xstprintf (tszFileName, _X (" %s/%s" ), st_StorageBucket.tszFilePath , st_ActionInfo.tszFileName );
78- if (0 == _tcsxnicmp (lpszAPIDownload, lpszAPIName, _tcsxlen (lpszAPIDownload)))
105+
106+ if (0 == st_ActionInfo.byType || 1 == st_ActionInfo.byType )
79107 {
80- XNETHANDLE xhToken = 0 ;
81- BaseLib_Handle_Create (&xhToken);
108+ if (0 == _tcsxnicmp (lpszAPIDownload, lpszAPIName, _tcsxlen (lpszAPIDownload)))
109+ {
110+ XNETHANDLE xhToken = 0 ;
111+ BaseLib_Handle_Create (&xhToken);
82112
83- XHANDLE xhAction = APIClient_File_Create (st_ActionInfo.tszFileUrl , tszFileName, true );
84- if (NULL == xhAction)
113+ XHANDLE xhAction = APIClient_File_Create (st_ActionInfo.tszFileUrl , tszFileName, true );
114+ if (NULL == xhAction)
115+ {
116+ st_HDRParam.nHttpCode = 501 ;
117+ HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
118+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
119+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 业务客户端:%s,处理用户转录动作失败,下载文件失败,URL:%s,路径:%s,Bucket:%s,类型:%d" ), lpszClientAddr, st_ActionInfo.tszFileUrl , tszFileName, st_ActionInfo.tszBucketStr , st_ActionInfo.byType );
120+ return false ;
121+ }
122+ APIClient_File_SetMaxSpeed (xhAction, st_ServiceCfg.st_XAction .nSDMax , st_ServiceCfg.st_XAction .nRVMax );
123+ APIClient_File_Start (xhAction);
124+ Session_Action_Insert (xhToken, xhAction, &st_ActionInfo);
125+ Protocol_StoragePacket_Action (tszRVBuffer, &nRVLen, xhToken, &st_ActionInfo);
126+ HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
127+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
128+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 业务客户端:%s,处理用户下载动作成功,URL:%s,路径:%s,句柄:%lld,类型:%d" ), lpszClientAddr, st_ActionInfo.tszFileUrl , tszFileName, xhToken, st_ActionInfo.byType );
129+ }
130+ else if (0 == _tcsxnicmp (lpszAPIUPload, lpszAPIName, _tcsxlen (lpszAPIUPload)))
85131 {
86- st_HDRParam.nHttpCode = 501 ;
87- HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
132+ XNETHANDLE xhToken = 0 ;
133+ BaseLib_Handle_Create (&xhToken);
134+
135+ XHANDLE xhAction = APIClient_File_Create (st_ActionInfo.tszFileUrl , tszFileName, false );
136+ if (NULL == xhAction)
137+ {
138+ st_HDRParam.nHttpCode = 501 ;
139+ HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
140+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
141+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 业务客户端:%s,处理用户转录动作失败,下载文件失败,URL:%s,路径:%s,Bucket:%s,类型:%d" ), lpszClientAddr, st_ActionInfo.tszFileUrl , tszFileName, st_ActionInfo.tszBucketStr , st_ActionInfo.byType );
142+ return false ;
143+ }
144+ APIClient_File_SetMaxSpeed (xhAction, st_ServiceCfg.st_XAction .nSDMax , st_ServiceCfg.st_XAction .nRVMax );
145+ APIClient_File_Start (xhAction);
146+ Session_Action_Insert (xhToken, xhAction, &st_ActionInfo);
147+ Protocol_StoragePacket_Action (tszRVBuffer, &nRVLen, xhToken, &st_ActionInfo);
148+ HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
88149 XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
89- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 业务客户端:%s,处理用户转录动作失败,下载文件失败,URL:%s,路径:%s,Bucket:%s" ), lpszClientAddr, st_ActionInfo.tszFileUrl , tszFileName, st_ActionInfo.tszBucketStr );
90- return false ;
150+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 业务客户端:%s,处理用户上传动作成功,URL:%s,路径:%s,句柄:%lld,类型:%d" ), lpszClientAddr, st_ActionInfo.tszFileUrl , tszFileName, xhToken, st_ActionInfo.byType );
91151 }
92- APIClient_File_SetMaxSpeed (xhAction, st_ServiceCfg.st_XAction .nSDMax , st_ServiceCfg.st_XAction .nRVMax );
93- APIClient_File_Start (xhAction);
94- Session_Action_Insert (xhToken, xhAction, &st_ActionInfo);
95- Protocol_StoragePacket_Action (tszRVBuffer, &nRVLen, xhToken, &st_ActionInfo);
96- HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
97- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
98- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 业务客户端:%s,处理用户下载动作成功,URL:%s,路径:%s,句柄:%lld" ), lpszClientAddr, st_ActionInfo.tszFileUrl , tszFileName, xhToken);
99152 }
100- else if (0 == _tcsxnicmp (lpszAPIUPload, lpszAPIName, _tcsxlen (lpszAPIUPload)) )
153+ else if (2 == st_ActionInfo. byType )
101154 {
102155 XNETHANDLE xhToken = 0 ;
103156 BaseLib_Handle_Create (&xhToken);
104157
105- XHANDLE xhAction = APIClient_File_Create (st_ActionInfo.tszFileUrl , tszFileName, false );
158+ XHANDLE xhAction = BTorrent_DLoader_Create (st_ActionInfo.tszFileUrl , tszFileName);
106159 if (NULL == xhAction)
107160 {
108161 st_HDRParam.nHttpCode = 501 ;
109162 HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
110163 XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
111- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 业务客户端:%s,处理用户转录动作失败,下载文件失败,URL:%s,路径:%s,Bucket:%s" ), lpszClientAddr, st_ActionInfo.tszFileUrl , tszFileName, st_ActionInfo.tszBucketStr );
164+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 业务客户端:%s,处理用户转录动作失败,下载文件失败,URL:%s,路径:%s,Bucket:%s,类型:%d " ), lpszClientAddr, st_ActionInfo.tszFileUrl , tszFileName, st_ActionInfo.tszBucketStr , st_ActionInfo. byType );
112165 return false ;
113166 }
114- APIClient_File_SetMaxSpeed (xhAction, st_ServiceCfg.st_XAction .nSDMax , st_ServiceCfg.st_XAction .nRVMax );
115- APIClient_File_Start (xhAction);
116167 Session_Action_Insert (xhToken, xhAction, &st_ActionInfo);
117168 Protocol_StoragePacket_Action (tszRVBuffer, &nRVLen, xhToken, &st_ActionInfo);
118169 HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
119170 XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
120- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 业务客户端:%s,处理用户上传动作成功 ,URL:%s,路径:%s,句柄:%lld" ), lpszClientAddr, st_ActionInfo.tszFileUrl , tszFileName, xhToken);
171+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 业务客户端:%s,处理用户下载动作成功 ,URL:%s,路径:%s,句柄:%lld,类型:%d " ), lpszClientAddr, st_ActionInfo.tszFileUrl , tszFileName, xhToken, st_ActionInfo. byType );
121172 }
122173
123174 return true ;
0 commit comments