@@ -377,7 +377,7 @@ CosResult ObjectOp::MultiGetObject(const GetObjectByFileReq& req,
377377}
378378
379379CosResult ObjectOp::PutObject (const PutObjectByStreamReq& req,
380- PutObjectByStreamResp* resp) {
380+ PutObjectByStreamResp* resp, const SharedTransferHandler& handler ) {
381381 CosResult result;
382382 std::string host = CosSysConfig::GetHost (GetAppId (), m_config->GetRegion (),
383383 req.GetBucketName ());
@@ -410,7 +410,7 @@ CosResult ObjectOp::PutObject(const PutObjectByStreamReq& req,
410410 }
411411
412412 result = UploadAction (host, path, req, additional_headers,
413- additional_params, is, resp);
413+ additional_params, is, resp, handler );
414414
415415 // V4 Etag长度为40字节
416416 if (result.IsSucc () && need_check_etag &&
@@ -423,7 +423,12 @@ CosResult ObjectOp::PutObject(const PutObjectByStreamReq& req,
423423 md5_str.c_str (), resp->GetEtag ().c_str (),
424424 resp->GetXCosRequestId ().c_str ());
425425 }
426-
426+ if (result.IsSucc () && handler) {
427+ handler->UpdateStatus (TransferStatus::COMPLETED, result, resp->GetHeaders (),
428+ resp->GetBody ());
429+ } else if (handler) {
430+ handler->UpdateStatus (TransferStatus::FAILED, result);
431+ }
427432 return result;
428433}
429434
0 commit comments