@@ -139,22 +139,41 @@ BOOL XEngine_Task_HttpUPLoader(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, in
139139 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" 上传客户端:%s,请求的文件被要求重定向到:%s%s" ), lpszClientAddr, tszStorageAddr, pSt_HTTPParam->tszHttpUri );
140140 return TRUE ;
141141 }
142-
143142 int nRVMode = 0 ;
144143 int nRVCount = 0 ;
145144 int nHDSize = 0 ;
145+ TCHAR tszStorageKey[MAX_PATH];
146146 XENGINE_STORAGEBUCKET st_StorageBucket;
147+ LPCTSTR lpszStorageKey = _T (" StorageKey" );
148+
149+ memset (tszStorageKey, ' \0 ' , MAX_PATH);
147150 memset (&st_StorageBucket, ' \0 ' , sizeof (XENGINE_STORAGEBUCKET));
151+ // 是否制定了bucket
152+ if (RfcComponents_HttpHelp_GetField (&pptszListHdr, nHdrCount, lpszStorageKey, st_StorageBucket.tszBuckKey ))
153+ {
154+ if (!APIHelp_Distributed_UPStorage (pSt_HTTPParam->tszHttpUri , st_LoadbalanceCfg.st_LoadBalance .pStl_ListBucket , &st_StorageBucket, 5 ))
155+ {
156+ st_HDRParam.bIsClose = TRUE ;
157+ st_HDRParam.nHttpCode = 413 ;
148158
149- if (!APIHelp_Distributed_UPStorage (pSt_HTTPParam->tszHttpUri , st_LoadbalanceCfg.st_LoadBalance .pStl_ListBucket , &st_StorageBucket, st_LoadbalanceCfg.st_LBLocation .nUPLoadMode ))
159+ RfcComponents_HttpServer_SendMsgEx (xhUPHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
160+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPUPLOADER);
161+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 上传客户端:%s,请求上传文件失败,可能BUCKET:% 不正确,错误:%lX" ), lpszClientAddr, pSt_HTTPParam->tszHttpUri , APIHelp_GetLastError ());
162+ return FALSE ;
163+ }
164+ }
165+ else
150166 {
151- st_HDRParam.bIsClose = TRUE ;
152- st_HDRParam.nHttpCode = 413 ;
167+ if (!APIHelp_Distributed_UPStorage (pSt_HTTPParam->tszHttpUri , st_LoadbalanceCfg.st_LoadBalance .pStl_ListBucket , &st_StorageBucket, st_LoadbalanceCfg.st_LBLocation .nUPLoadMode ))
168+ {
169+ st_HDRParam.bIsClose = TRUE ;
170+ st_HDRParam.nHttpCode = 413 ;
153171
154- RfcComponents_HttpServer_SendMsgEx (xhUPHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
155- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPUPLOADER);
156- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 上传客户端:%s,请求上传文件失败,可能BUCKET:% 不正确,错误:%lX" ), lpszClientAddr, pSt_HTTPParam->tszHttpUri , APIHelp_GetLastError ());
157- return FALSE ;
172+ RfcComponents_HttpServer_SendMsgEx (xhUPHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
173+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPUPLOADER);
174+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 上传客户端:%s,请求上传文件失败,可能BUCKET:% 不正确,错误:%lX" ), lpszClientAddr, pSt_HTTPParam->tszHttpUri , APIHelp_GetLastError ());
175+ return FALSE ;
176+ }
158177 }
159178 _stprintf (tszFileDir, _T (" %s%s" ), st_StorageBucket.tszFilePath , pSt_HTTPParam->tszHttpUri );
160179
@@ -218,7 +237,8 @@ BOOL XEngine_Task_HttpUPLoader(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, in
218237 {
219238 st_HDRParam.bIsClose = TRUE ;
220239 st_HDRParam.nHttpCode = 200 ;
221- RfcComponents_HttpServer_SendMsgEx (xhUPHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
240+ Protocol_StoragePacket_UPDown (tszPassNotify, &nPLen, st_StorageInfo.tszBuckKey , st_StorageInfo.tszFileDir , st_StorageInfo.tszClientAddr , st_StorageInfo.ullRWLen , FALSE );
241+ RfcComponents_HttpServer_SendMsgEx (xhUPHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszPassNotify, nPLen);
222242 XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPUPLOADER);
223243 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T (" 上传客户端:%s,请求上传文件成功,文件名:%s,总大小:%lld,写入大小:%lld,文件不完整,需要等待断点续传完毕" ), lpszClientAddr, tszFileDir, st_StorageInfo.ullCount , st_StorageInfo.ullFSize );
224244 return TRUE ;
@@ -232,6 +252,7 @@ BOOL XEngine_Task_HttpUPLoader(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, in
232252
233253 _tcscpy (st_ProtocolFile.st_ProtocolFile .tszFilePath , st_StorageBucket.tszFilePath );
234254 _tcscpy (st_ProtocolFile.st_ProtocolFile .tszFileName , pSt_HTTPParam->tszHttpUri + 1 );
255+ _tcscpy (st_ProtocolFile.tszBuckKey , st_StorageBucket.tszBuckKey );
235256 st_ProtocolFile.st_ProtocolFile .nFileSize = st_StorageInfo.ullFSize ;
236257
237258 OPenSsl_Api_Digest (tszFileDir, tszHashStr, &nHashLen, TRUE , st_ServiceCfg.st_XStorage .nHashMode );
@@ -257,8 +278,7 @@ BOOL XEngine_Task_HttpUPLoader(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, in
257278 }
258279
259280 BOOL bRet = TRUE ;
260- _tcscpy (st_ProtocolFile.tszBuckKey , st_StorageBucket.tszBuckKey );
261- Protocol_StoragePacket_UPDown (tszPassNotify, &nPLen, st_StorageInfo.tszBuckKey , st_StorageInfo.tszFileDir , st_StorageInfo.tszClientAddr , st_StorageInfo.ullRWCount , FALSE , st_ProtocolFile.st_ProtocolFile .tszFileHash );
281+ Protocol_StoragePacket_UPDown (tszPassNotify, &nPLen, st_StorageInfo.tszBuckKey , st_StorageInfo.tszFileDir , st_StorageInfo.tszClientAddr , st_StorageInfo.ullCount , FALSE , st_ProtocolFile.st_ProtocolFile .tszFileHash );
262282 if (st_ServiceCfg.st_XSql .bEnable )
263283 {
264284 if (Database_File_FileInsert (&st_ProtocolFile))
0 commit comments