Exemplo n.º 1
0
 private function addContentLength(RequestInterface $request, StreamInterface $body)
 {
     // Set the Content-Length header if it can be determined, and never
     // send a Transfer-Encoding: chunked and Content-Length header in
     // the same request.
     if ($request->hasHeader('Content-Length')) {
         // Remove transfer-encoding if content-length is set.
         $request->removeHeader('Transfer-Encoding');
         return;
     }
     if ($request->hasHeader('Transfer-Encoding')) {
         return;
     }
     if (null !== ($size = $body->getSize())) {
         $request->setHeader('Content-Length', $size);
         $request->removeHeader('Transfer-Encoding');
     } elseif ('1.1' == $request->getProtocolVersion()) {
         // Use chunked Transfer-Encoding if there is no determinable
         // content-length header and we're using HTTP/1.1.
         $request->setHeader('Transfer-Encoding', 'chunked');
         $request->removeHeader('Content-Length');
     }
 }
Exemplo n.º 2
0
 public function signRequest(RequestInterface $request, CredentialsInterface $credentials)
 {
     // Ensure that the signable query string parameters are sorted
     sort($this->signableQueryString);
     // Add the security token header if one is being used by the credentials
     if ($token = $credentials->getSecurityToken()) {
         $request->setHeader('X-Amz-Security-Token', $token);
     }
     // Add a date header if one is not set
     $request->removeHeader('X-Amz-Date');
     $request->setHeader('Date', gmdate(\DateTime::RFC2822));
     $stringToSign = $this->createCanonicalizedString($request);
     $request->getConfig()['aws.signature'] = $stringToSign;
     $request->setHeader('Authorization', 'AWS ' . $credentials->getAccessKeyId() . ':' . $this->signString($stringToSign, $credentials));
 }
Exemplo n.º 3
0
 private function moveHeadersToQuery(RequestInterface $request)
 {
     $query = $request->getQuery();
     foreach ($request->getHeaders() as $name => $header) {
         $name = strtolower($name);
         if (substr($name, 0, 5) == 'x-amz') {
             $query[$name] = $header;
         }
         if ($name !== 'host') {
             $request->removeHeader($name);
         }
     }
 }