/** * @param array $headers * @param array $userMetadata */ private function populateRequestHeadersWithUserMetadata(array &$headers, array $userMetadata) { $metaSize = 0; foreach ($userMetadata as $key => $value) { $key = HttpHeaders::BCE_USER_METADATA_PREFIX . HttpUtils::urlEncode(trim($key)); $value = HttpUtils::urlEncode($value); $metaSize += strlen($key) + strlen($value); if ($metaSize > BosClient::MAX_USER_METADATA_SIZE) { throw new BceClientException('User metadata size should not be greater than ' . BosClient::MAX_USER_METADATA_SIZE); } $headers[$key] = $value; } }
/** * @param $parameters array * @param $forSignature bool * @return string */ public static function getCanonicalQueryString(array $parameters, $forSignature) { if (count($parameters) == 0) { return ''; } $parameterStrings = array(); foreach ($parameters as $k => $v) { if ($forSignature && strcasecmp(HttpHeaders::AUTHORIZATION, $k) == 0) { continue; } if (!isset($k)) { throw new \InvalidArgumentException("parameter key should not be null"); } if (isset($v)) { $parameterStrings[] = HttpUtils::urlEncode($k) . '=' . HttpUtils::urlEncode((string) $v); } else { if ($forSignature) { $parameterStrings[] = HttpUtils::urlEncode($k) . '='; } else { $parameterStrings[] = HttpUtils::urlEncode($k); } } } sort($parameterStrings); return implode('&', $parameterStrings); }