@@ -2090,6 +2090,7 @@ void ObjectOp::FillUploadTask(const std::string& upload_id,
20902090 if (!sign_header_host) {
20912091 not_sign_headers.insert (" Host" );
20922092 }
2093+ req_headers[kHttpHeaderContentLength ] = std::to_string (len);
20932094 std::string auth_str = AuthTool::Sign (GetAccessKey (), GetSecretKey (), " PUT" ,
20942095 path, req_headers, req_params, not_sign_headers);
20952096 req_headers[" Authorization" ] = auth_str;
@@ -2130,6 +2131,7 @@ void ObjectOp::FillCopyTask(const std::string& upload_id,
21302131 if (!sign_header_host) {
21312132 not_sign_headers.insert (" Host" );
21322133 }
2134+ req_headers[kHttpHeaderContentLength ] = " 0" ;
21332135 std::string auth_str = AuthTool::Sign (GetAccessKey (), GetSecretKey (), " PUT" ,
21342136 path, req_headers, req_params, not_sign_headers);
21352137 req_headers[" Authorization" ] = auth_str;
@@ -2161,17 +2163,19 @@ std::string ObjectOp::GeneratePresignedUrl(const GeneratePresignedUrlReq& req) {
21612163 }
21622164
21632165 std::map<std::string, std::string> headers;
2164- headers[" Host" ] = host;
2166+ BaseReq req_header;
2167+ req_header.AddHeaders (req.GetHeaders ());
2168+ req_header.AddHeader (" Host" , host);
21652169 std::unordered_set<std::string> not_sign_headers;
21662170 if (!req.SignHeaderHost ()) {
21672171 not_sign_headers.insert (" Host" );
21682172 }
21692173 if (req.GetStartTimeInSec () == 0 || req.GetExpiredTimeInSec () == 0 ) {
21702174 auth_str = AuthTool::Sign (GetAccessKey (), GetSecretKey (), req.GetMethod (),
2171- req.GetPath (), headers , req.GetParams (), not_sign_headers);
2175+ req.GetPath (), req_header. GetHeaders () , req.GetParams (), not_sign_headers);
21722176 } else {
21732177 auth_str = AuthTool::Sign (
2174- GetAccessKey (), GetSecretKey (), req.GetMethod (), req.GetPath (), headers ,
2178+ GetAccessKey (), GetSecretKey (), req.GetMethod (), req.GetPath (), req_header. GetHeaders () ,
21752179 req.GetParams (), req.GetStartTimeInSec (),
21762180 req.GetStartTimeInSec () + req.GetExpiredTimeInSec (), not_sign_headers);
21772181 }
@@ -2190,9 +2194,9 @@ std::string ObjectOp::GeneratePresignedUrl(const GeneratePresignedUrlReq& req) {
21902194 c_itr != req_params.end (); ++c_itr) {
21912195 std::string part = " " ;
21922196 if (c_itr->second .empty ()) {
2193- part = c_itr->first + " & " ;
2197+ part = " & " + c_itr->first ;
21942198 } else {
2195- part = c_itr->first + " =" + c_itr->second + " & " ;
2199+ part = " & " + c_itr->first + " =" + c_itr->second ;
21962200 }
21972201 query_str += part;
21982202 }
0 commit comments