continue; } //如果value为null,则赋值为空串 if ($v === null) { $v = ''; } //trim后再encode,之后使用':'号连接起来 $headerStrings[] = HttpUtil::urlEncode(strtolower(trim($k))) . ':' . HttpUtil::urlEncode(trim($v)); } //字典序排序 sort($headerStrings); //用'\n'把它们连接起来 return implode("\n", $headerStrings); } } HttpUtil::__init(); function getSigner($host, $httpMethod, $path, $parms, $timestamp) { // date_default_timezone_set('UTC'); $AK = "f7306cacee2942c98a715ddc0d5b3878"; //替换成你STS获取的AK $SK = "2cf0173d82624502bbd7150c03b5b236"; //替换成你STS获取的SK $expirationPeriodInSeconds = "3600"; //$timestamp = date("Y-m-d")."T".date("H:i:s")."Z"; $authStringPrefix = "bce-auth-v1" . "/" . $AK . "/" . $timestamp . "/" . $expirationPeriodInSeconds; $SigningKey = hash_hmac('SHA256', $authStringPrefix, $SK); $CanonicalHeaders1 = "host;" . "x-bce-date"; $CanonicalHeaders2 = "host:" . $host . "\n" . "x-bce-date:" . urlencode($timestamp); // //print "CanonicalHeaders2:" . $CanonicalHeaders2 . "\n";