AnonymousSignature.php
11 months ago
S3ExpressSignature.php
11 months ago
S3SignatureV4.php
11 months ago
SignatureInterface.php
11 months ago
SignatureProvider.php
11 months ago
SignatureTrait.php
11 months ago
SignatureV4.php
11 months ago
S3ExpressSignature.php
48 lines
| 1 | <?php |
| 2 | |
| 3 | namespace Aws\Signature; |
| 4 | |
| 5 | use Aws\Credentials\Credentials; |
| 6 | use Aws\Credentials\CredentialsInterface; |
| 7 | use Psr\Http\Message\RequestInterface; |
| 8 | |
| 9 | class S3ExpressSignature extends S3SignatureV4 |
| 10 | { |
| 11 | public function signRequest( |
| 12 | RequestInterface $request, |
| 13 | CredentialsInterface $credentials, |
| 14 | $signingService = 's3express' |
| 15 | ) { |
| 16 | $request = $this->modifyTokenHeaders($request, $credentials); |
| 17 | $credentials = $this->getSigningCredentials($credentials); |
| 18 | return parent::signRequest($request, $credentials, $signingService); |
| 19 | } |
| 20 | |
| 21 | public function presign(RequestInterface $request, CredentialsInterface $credentials, $expires, array $options = []) |
| 22 | { |
| 23 | $request = $this->modifyTokenHeaders($request, $credentials); |
| 24 | $credentials = $this->getSigningCredentials($credentials); |
| 25 | return parent::presign($request, $credentials, $expires, $options); |
| 26 | } |
| 27 | |
| 28 | private function modifyTokenHeaders( |
| 29 | RequestInterface $request, |
| 30 | CredentialsInterface $credentials |
| 31 | ) { |
| 32 | //The x-amz-security-token header is not supported by s3 express |
| 33 | $request = $request->withoutHeader('X-Amz-Security-Token'); |
| 34 | return $request->withHeader( |
| 35 | 'x-amz-s3session-token', |
| 36 | $credentials->getSecurityToken() |
| 37 | ); |
| 38 | } |
| 39 | |
| 40 | private function getSigningCredentials(CredentialsInterface $credentials) |
| 41 | { |
| 42 | return new Credentials( |
| 43 | $credentials->getAccessKeyId(), |
| 44 | $credentials->getSecretKey() |
| 45 | ); |
| 46 | } |
| 47 | } |
| 48 |