private function prepareRequestHeader($uri, $http_method, $media_type, $metadata = null) { $headers = array(); // 1. Format date $date = $this->getCurrentGMTTime(); $headers[Common::DATE] = $date; // 2. Set content type if ($media_type != NULL && !empty($media_type)) { $headers[Common::CONTENT_TYPE] = $media_type; } if ($metadata != null) { foreach ($metadata->getRawMetadata() as $key => $value) { $headers[$key] = $value; } } // 3. Set authorization information $sign_uri = substr($uri, strpos($uri, "/", strpos($uri, ":") + 3)); $signature = Signer::signToBase64($http_method, $sign_uri, $headers, $this->credential->getGalaxyAccessSecret(), self::SIGN_ALGORITHM); $auth_string = "Galaxy-V2 " . $this->credential->getGalaxyAccessId() . ":" . $signature; $headers[Common::AUTHORIZATION] = $auth_string; return $headers; }