| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- <?php
 
- namespace Aws\Signature;
 
- use Aws\Credentials\Credentials;
 
- use Aws\Credentials\CredentialsInterface;
 
- use Psr\Http\Message\RequestInterface;
 
- class S3ExpressSignature extends S3SignatureV4
 
- {
 
-     public function signRequest(
 
-         RequestInterface $request,
 
-         CredentialsInterface $credentials,
 
-         $signingService = 's3express'
 
-     ) {
 
-         $request = $this->modifyTokenHeaders($request, $credentials);
 
-         $credentials = $this->getSigningCredentials($credentials);
 
-         return parent::signRequest($request, $credentials, $signingService);
 
-     }
 
-     public function presign(RequestInterface $request, CredentialsInterface $credentials, $expires, array $options = [])
 
-     {
 
-         $request = $this->modifyTokenHeaders($request, $credentials);
 
-         $credentials = $this->getSigningCredentials($credentials);
 
-         return parent::presign($request, $credentials, $expires, $options);
 
-     }
 
-     private function modifyTokenHeaders(
 
-         RequestInterface $request,
 
-         CredentialsInterface $credentials
 
-     ) {
 
-         //The x-amz-security-token header is not supported by s3 express
 
-         $request = $request->withoutHeader('X-Amz-Security-Token');
 
-         return $request->withHeader(
 
-             'x-amz-s3session-token',
 
-             $credentials->getSecurityToken()
 
-         );
 
-     }
 
-     private function getSigningCredentials(CredentialsInterface $credentials)
 
-     {
 
-         return new Credentials(
 
-             $credentials->getAccessKeyId(),
 
-             $credentials->getSecretKey()
 
-         );
 
-     }
 
- }
 
 
  |