NOTE: For Version 3 of the AWS SDK for PHP, please see the V3 User Guide and V3 API Reference.

# Class S3Signature

Default Amazon S3 signature implementation

  Aws\S3\S3Signature implements Aws\S3\S3SignatureInterface

Namespace: Aws\S3
Link: http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
Located at Aws/S3/S3Signature.php

## Methods summary

- `public` `signRequest ( Guzzle\Http\Message\RequestInterface $request, Aws\Common\Credentials\CredentialsInterface $credentials )`

  Signs the specified request with an AWS signing protocol by using the provided AWS account credentials and adding the required headers to the request.

- `public` `createPresignedUrl ( Guzzle\Http\Message\RequestInterface $request, Aws\Common\Credentials\CredentialsInterface $credentials, int|string|\DateTime $expires )`

  Create a pre-signed URL

- `public` `signString ( mixed $string, Aws\Common\Credentials\CredentialsInterface $credentials )`
- `public` `createCanonicalizedString ( Guzzle\Http\Message\RequestInterface $request, mixed $expires = null )`

## Methods detail

# `public`
`signRequest( `Guzzle\Http\Message\RequestInterface` $request, `Aws\Common\Credentials\CredentialsInterface` $credentials )`

Signs the specified request with an AWS signing protocol by using the provided AWS account credentials and adding the required headers to the request.

#### Parameters

$request
  ``Guzzle\Http\Message\RequestInterface``
  $request Request to add a signature to
$credentials
  ``Aws\Common\Credentials\CredentialsInterface``
  $credentials Signing credentials

#### Implementation of

`Aws\Common\Signature\SignatureInterface::signRequest()`
# `public string`
`createPresignedUrl( `Guzzle\Http\Message\RequestInterface` $request, `Aws\Common\Credentials\CredentialsInterface` $credentials, integer|string|`DateTime` $expires )`

Create a pre-signed URL

#### Parameters

$request
  ``Guzzle\Http\Message\RequestInterface``
  $request Request to sign
$credentials
  ``Aws\Common\Credentials\CredentialsInterface``
  $credentials Credentials used to sign
$expires
  `integer|string|`DateTime``
  $expires The time at which the URL should expire. This can be a Unix timestamp, a PHP DateTime object, or a string that can be evaluated by strtotime

#### Returns

`string`

#### Implementation of

`Aws\Common\Signature\SignatureInterface::createPresignedUrl()`
# `public`
`signString( mixed $string, `Aws\Common\Credentials\CredentialsInterface` $credentials )`
# `public`
`createCanonicalizedString( `Guzzle\Http\Message\RequestInterface` $request, mixed $expires = null )`

### Magic methods summary

## Properties summary

`protected array` | $signableQueryString | # Query string values that must be signed