

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Options du constructeur client pour la AWS SDK pour PHP version 3
<a name="guide_configuration"></a>

Les options du constructeur client peuvent être fournies dans un constructeur client ou fournies à la [https://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Sdk.html](https://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Sdk.html)classe. Les options fournies peuvent varier selon le type de client que vous créez. Ces options de configuration client personnalisées sont décrites dans la [documentation sur l’API](https://docs.aws.amazon.com/aws-sdk-php/latest/) de chaque client.

Si vous ne fournissez pas explicitement les options de constructeur client dont le client a besoin, le SDK for PHP recherche les valeurs des variables d'environnement ou d' AWS un fichier de configuration. Tous les clients ont besoin d'une valeur de fournisseur d'informations d'identification et d'une Région AWS valeur. Vous devez donc définir ces valeurs en tant qu'options du constructeur ou en externe.

Par défaut, le fichier de configuration en cours de vérification est `.aws/config` dans votre répertoire personnel, généralement `~/.aws/config`. Toutefois, vous pouvez utiliser la variable d'environnement `AWS_CONFIG_FILE` pour définir l'emplacement de votre fichier de configuration par défaut. Par exemple, cela peut être utile si vous limitez l'accès aux fichiers à certains répertoires avec`open_basedir`.

Pour plus d'informations sur l'emplacement et le formatage des `credentials` fichiers partagés AWS `config`, consultez la section [Configuration](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html) dans le *guide de référence des outils AWS SDKs et*.

Pour plus de détails sur tous les paramètres de configuration globaux que vous pouvez définir dans les fichiers de AWS configuration ou en tant que variables d'environnement, consultez la section [Référence des paramètres de configuration et d'authentification](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html) dans le *guide de référence des outils AWS SDKs et*.

**Topics**
+ [api\$1provider](#api-provider)
+ [informations d’identification](#config_credentials)
+ [debug](#debug)
+ [stats](#config-stats)
+ [point de terminaison](#endpoint)
+ [endpoint\$1provider](#endpoint-provider)
+ [endpoint\$1discovery](#endpoint-discovery)
+ [handler](#handler)
+ [http](#config-http)
+ [http\$1handler](#http-handler)
+ [profile](#profile)
+ [region](#cfg-region)
+ [nouvelles tentatives](#config-retries)
+ [scheme](#scheme)
+ [web](#service)
+ [signature\$1provider](#signature-provider)
+ [signature\$1version](#signature-version)
+ [ua\$1append](#ua-append)
+ [utilisez\$1aws\$1shared\$1config\$1files](#use-aws-shared-config-files)
+ [valider](#validate)
+ [version](#cfg-version)

L'exemple suivant montre comment transmettre des options au constructeur d'un client Amazon S3.

```
use Aws\S3\S3Client;

$options = [
    'region'            => 'us-west-2',
    'version'           => '2006-03-01',
    'signature_version' => 'v4'
];

$s3Client = new S3Client($options);
```

Consultez le [Création d'un client de service de base](making-service-requests.md#creating-a-client) pour plus d'informations sur la création de clients.

## api\$1provider
<a name="api-provider"></a>

Type  
 `callable` 

Fonction PHP de type callable qui accepte un type, un service et un argument de version, et renvoie un tableau de données de configuration correspondantes. Son type peut prendre l'une des valeurs suivantes : `api`, `waiter` ou `paginator`.

Par défaut, le kit SDK utilise une instance de `Aws\Api\FileSystemApiProvider` qui charge des fichiers API depuis le dossier `src/data` du kit SDK.

## informations d’identification
<a name="config_credentials"></a>

Type  
 `array|Aws\CacheInterface|Aws\Credentials\CredentialsInterface|bool|callable` 

Spécifiez un objet `Aws\Credentials\CredentialsInterface` pour utiliser une instance d'informations d'identification spécifique. Ce qui suit indique que le fournisseur d'informations d'identification IAM Identity Center doit être utilisé. Ce fournisseur est également connu sous le nom de fournisseur d'informations d'identification SSO.

```
$credentials = Aws\Credentials\CredentialProvider::sso('profile default');

$s3 = new Aws\S3\S3Client([
    'region'      => 'us-west-2',
    'credentials' => $credentials
]);
```

Si vous utilisez un profil nommé, remplacez le nom de votre profil par « `default` » dans l'exemple précédent. Pour en savoir plus sur la configuration de profils nommés, consultez la section [Shared `config` and `credentials` files](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dans le *guide de référence AWS SDKs and Tools*.

Si vous ne spécifiez pas de fournisseur d'informations d'identification à utiliser et que vous vous fiez à la chaîne de fournisseurs d'informations d'identification, le message d'erreur résultant de l'échec de l'authentification est généralement générique. Il est généré à partir du dernier fournisseur de la liste des sources dont les informations d'identification sont valides, ce qui n'est peut-être pas le fournisseur que vous essayez d'utiliser. Lorsque vous spécifiez le fournisseur d'informations d'identification à utiliser, le message d'erreur qui en résulte est plus utile et pertinent car il provient uniquement de ce fournisseur. Pour en savoir plus sur la chaîne de sources dont les informations d'identification sont vérifiées, consultez la section [Chaîne de fournisseurs d'informations d'identification](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain) dans le *guide de référence AWS SDKs et Tools*.

Spécifiez `false` pour utiliser des informations d'identification null et si vous ne souhaitez pas signer les requêtes.

```
$s3 = new Aws\S3\S3Client([
    'region'      => 'us-west-2',
    'credentials' => false
]);
```

Spécifiez une fonction de type callable [fournisseur d’informations d’identification](guide_credentials.md#cred-provider-defn-php) pour créer des informations d’identification à l’aide d’une fonction.

```
use Aws\Credentials\CredentialProvider;

// Only load credentials from environment variables
$provider = CredentialProvider::env();

$s3 = new Aws\S3\S3Client([
    'region'      => 'us-west-2',
    'credentials' => $provider
]);
```

Spécifiez une instance de `Aws\CacheInterface` pour mettre en cache les valeurs renvoyées par la chaîne du fournisseur par défaut dans plusieurs processus.

```
use Aws\Credentials\CredentialProvider;
use Aws\PsrCacheAdapter;
use Symfony\Component\Cache\Adapter\FilesystemAdapter;


$cache = new PsrCacheAdapter(new FilesystemAdapter);
$provider = CredentialProvider::defaultProvider();
$cachedProvider = CredentialProvider::cache($provider, $cache);

$s3 = new Aws\S3\S3Client([
    'region' => 'us-west-2',
    'credentials' => $cachedProvider
]);
```

Vous trouverez plus d'informations sur la fourniture d'informations d'identification à un client dans le guide [Credentials for the AWS SDK pour PHP Version 3](guide_credentials.md).

**Note**  
Les informations d'identification sont chargées et validées lentement lorsqu'elles sont utilisées.

## debug
<a name="debug"></a>

Type  
 `bool|array` 

Génère des informations de débogage sur chaque transfert. Les informations de débogage contiennent des informations sur chaque changement d'état d'une transaction lors de sa préparation et de son envoi sur le réseau. La sortie de débogage comprend également des informations sur le gestionnaire HTTP spécifique utilisé par un client (par exemple, sortie de débogage cURL).

Définissez cette option sur `true` pour afficher des informations de débogage lors de l'envoi de requêtes.

```
$s3 = new Aws\S3\S3Client([
    'region'  => 'us-west-2',
    'debug'   => true
]);

// Perform an operation to see the debug output
$s3->listBuckets();
```

Vous pouvez également fournir un tableau associatif contenant les clés suivantes.

**logfn (callable)**  
Fonction appelée avec des messages de journaux. La fonction PHP `echo` est utilisée par défaut.

**stream\$1size (int)**  
Lorsque la taille d'un flux est supérieure à ce nombre, les données du flux ne sont pas consignées. Définissez cette option sur `0` si vous ne souhaitez pas consigner les données du flux.

**scrub\$1auth (bool)**  
Réglez sur `false` pour désactiver le nettoyage des données d'authentification contenues dans les messages enregistrés (cela signifie que l'identifiant et la signature de votre clé d' AWS accès seront transmis au`logfn`).

**http (bool)**  
Définissez cette option sur `false` pour désactiver la fonction de « débogage (debug) » des gestionnaires HTTP de niveau inférieur (par exemple, sortie cURL verbose).

**auth\$1headers (array)**  
Définissez un mappage clé-valeur des en-têtes que vous souhaitez remplacer avec la valeur par laquelle vous souhaitez les remplacer. Ces valeurs ne sont pas utilisées, sauf si `scrub_auth` est défini sur `true`.

**auth\$1strings (array)**  
Définissez un mappage clé-valeur des expressions régulières à mapper avec leurs remplacements. Ces valeurs sont utilisées par le nettoyeur de données d'authentification si `scrub_auth` est défini sur `true`.

```
$s3 = new Aws\S3\S3Client([
    'region'  => 'us-west-2',
    'debug'   => [
        'logfn'        => function ($msg) { echo $msg . "\n"; },
        'stream_size'  => 0,
        'scrub_auth'   => true,
        'http'         => true,
        'auth_headers' => [
            'X-My-Secret-Header' => '[REDACTED]',
        ],
        'auth_strings' => [
            '/SuperSecret=[A-Za-z0-9]{20}/i' => 'SuperSecret=[REDACTED]',
        ],
    ]
]);

// Perform an operation to see the debug output
$s3->listBuckets();
```

**Note**  
Cette option produit également les informations du gestionnaire HTTP sous-jacent produites par l'option de `http` débogage. La sortie de débogage s'avère très utile pour diagnostiquer les problèmes dans le kit AWS SDK pour PHP. Veuillez fournir la sortie de débogage d'un échec isolé lorsque vous ouvrez une question concernant le kit SDK.

## stats
<a name="config-stats"></a>

Type  
 `bool|array` 

Associe les statistiques de transfert aux erreurs et aux résultats renvoyés par les opérations du kit SDK.

Définissez cette option sur `true` pour collecter des statistiques de transfert sur les requêtes envoyées.

```
$s3 = new Aws\S3\S3Client([
    'region'  => 'us-west-2',
    'stats'   => true
]);

// Perform an operation
$result = $s3->listBuckets();
// Inspect the stats
$stats = $result['@metadata']['transferStats'];
```

Vous pouvez également fournir un tableau associatif contenant les clés suivantes.

**retries (bool)**  
Définissez ce paramètre sur `false` pour désactiver le signalement des tentatives de tentative. Les statistiques sur les nouvelles tentatives sont collectées et renvoyées par défaut.

**http (bool)**  
Définissez sur pour `true` permettre la collecte de statistiques à partir d'adaptateurs HTTP de niveau inférieur (par exemple, les valeurs renvoyées GuzzleHttpTransferStats). Les gestionnaires HTTP doivent prendre en charge une option \$1\$1on\$1transfer\$1stats pour que cette option fonctionne. Les statistiques HTTP sont renvoyées sous la forme d'un ensemble indexé de tableaux associatifs. Chaque tableau contient les statistiques de transfert renvoyées pour une requête par le gestionnaire HTTP du client. Ce paramètre est désactivé par défaut.  
Si une nouvelle tentative a été effectuée pour une demande, toutes les statistiques de transfert sont renvoyées. `$result['@metadata']['transferStats']['http'][0]` contient alors les statistiques de la première demande, `$result['@metadata']['transferStats']['http'][1]` contient celles de la deuxième demande, etc.

**timer (bool)**  
Définissez cette option sur `true` pour activer un minuteur de commande qui indique le temps total passé sur une opération (en secondes). Ce paramètre est désactivé par défaut.

```
$s3 = new Aws\S3\S3Client([
    'region'  => 'us-west-2',
    'stats'   => [
        'retries'      => true,
        'timer'        => false,
        'http'         => true,
    ]
]);

// Perform an operation
$result = $s3->listBuckets();
// Inspect the HTTP transfer stats
$stats = $result['@metadata']['transferStats']['http'];
// Inspect the number of retries attempted
$stats = $result['@metadata']['transferStats']['retries_attempted'];
// Inspect the total backoff delay inserted between retries
$stats = $result['@metadata']['transferStats']['total_retry_delay'];
```

## point de terminaison
<a name="endpoint"></a>

Type  
 `string` 

URI complet du service web. Cela est nécessaire pour les services, tels que ceux qui utilisent des [AWS Elemental MediaConvert](https://docs.aws.amazon.com/mediaconvert/latest/ug/)points de terminaison spécifiques au compte. Pour ces services, demandez ce point de terminaison à l'aide de la `describeEndpoints` méthode.

Cela n'est nécessaire que lors de la connexion à un point de terminaison personnalisé (par exemple, une version locale d'Amazon S3 ou [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html) Local).

Voici un exemple de connexion à Amazon DynamoDB Local :

```
$client = new Aws\DynamoDb\DynamoDbClient([
    'version'  => '2012-08-10',
    'region'   => 'us-east-1',
    'endpoint' => 'http://localhost:8000'
]);
```

Consultez les [AWS régions et points de terminaison](https://docs.aws.amazon.com/general/latest/gr/rande.html) pour obtenir la liste des AWS régions et points de terminaison disponibles.

## endpoint\$1provider
<a name="endpoint-provider"></a>

Type  
 `Aws\EndpointV2\EndpointProviderV2|callable` 

Une instance optionnelle de EndpointProvider V2 ou PHP appelable qui accepte un hachage d'options, y compris une clé « service » et une clé « région ». Cet élément renvoie `NULL` ou un hachage de données de point de terminaison, pour lequel la clé « endpoint » est obligatoire.

Voici un exemple de création d'un fournisseur de point de terminaison minimal.

```
$provider = function (array $params) {
    if ($params['service'] == 'foo') {
        return ['endpoint' => $params['region'] . '.example.com'];
    }
    // Return null when the provider cannot handle the parameters
    return null;
});
```

## endpoint\$1discovery
<a name="endpoint-discovery"></a>

Type  
 `array|Aws\CacheInterface|Aws\EndpointDiscovery\ConfigurationInterface|callable` 

La découverte de points de terminaison identifie et se connecte au point de terminaison correct pour une API de service qui prend en charge la découverte de points de terminaison. Pour les services qui prennent en charge mais ne nécessitent pas la découverte de points de terminaison, activez `endpoint_discovery` lors de la création du client. Si un service ne prend pas en charge la découverte de points de terminaison, cette configuration est ignorée.

 `Aws\EndpointDiscovery\ConfigurationInterface` 

Un fournisseur de configuration facultatif qui permet la connexion automatique au point de terminaison approprié d'une API de service pour les opérations que le service spécifie.

L'objet `Aws\EndpointDiscovery\Configuration` accepte deux options, dont une valeur booléenne, « enabled », qui indique si la découverte de points de terminaison est activée, et un nombre entier « cache\$1limit », qui indique le nombre maximal de clés dans le cache des points de terminaison.

Pour chaque client créé, transmettez un objet `Aws\EndpointDiscovery\Configuration` pour utiliser une configuration spécifique pour la découverte de points de terminaison.

```
use Aws\EndpointDiscovery\Configuration;
use Aws\S3\S3Client;

$enabled = true;
$cache_limit = 1000;

$config = new Aws\EndpointDiscovery\Configuration (
    $enabled,
    $cache_limit
);

$s3 = new Aws\S3\S3Client([
    'region' => 'us-east-2',
    'endpoint_discovery' => $config,

]);
```

Spécifiez une instance de `Aws\CacheInterface` pour mettre en cache les valeurs renvoyées par la découverte de points de terminaison dans plusieurs processus.

```
use Aws\DoctrineCacheAdapter;
use Aws\S3\S3Client;
use Doctrine\Common\Cache\ApcuCache;

$s3 = new S3Client([
    'region'      => 'us-west-2',
    'endpoint_discovery' => new DoctrineCacheAdapter(new ApcuCache),
]);
```

Transmettez un tableau à la découverte de points de terminaison.

```
use Aws\S3\S3Client;

$s3 = new S3Client([
    'region'      => 'us-west-2',
    'endpoint_discovery' => [
        'enabled' => true,
        'cache_limit' => 1000
    ],
]);
```

## handler
<a name="handler"></a>

Type  
 `callable` 

Gestionnaire qui accepte un objet de commande et un objet de requête, et qui renvoie une promesse (`GuzzleHttp\Promise\PromiseInterface`) exécutée avec un objet `Aws\ResultInterface` ou rejetée avec `Aws\Exception\AwsException`. Un gestionnaire n'accepte pas un gestionnaire suivant, car il s'agit d'un élément terminal qui doit traiter une commande. Si aucun gestionnaire n'est fourni, un gestionnaire Guzzle par défaut est utilisé.

`Aws\MockHandler` vous permet de renvoyer des résultats fictifs ou de lancer des exceptions de simulation. Vous mettez en file d'attente les résultats ou les exceptions, puis MockHandler vous les retirerez dans l'ordre FIFO.

```
use Aws\Result;
use Aws\MockHandler;
use Aws\DynamoDb\DynamoDbClient;
use Aws\CommandInterface;
use Psr\Http\Message\RequestInterface;
use Aws\Exception\AwsException;

$mock = new MockHandler();

// Return a mocked result
$mock->append(new Result(['foo' => 'bar']));

// You can provide a function to invoke; here we throw a mock exception
$mock->append(function (CommandInterface $cmd, RequestInterface $req) {
    return new AwsException('Mock exception', $cmd);
});

// Create a client with the mock handler
$client = new DynamoDbClient([
    'region' => 'us-east-1',
    'handler' => $mock
]);

// Result object response will contain ['foo' => 'bar']
$result = $client->listTables();

// This will throw the exception that was enqueued
$client->listTables();
```

## http
<a name="config-http"></a>

Type  
 `array` 

Défini sur un tableau d'options HTTP appliquées aux requêtes et transferts HTTP créés par le kit SDK.

Le kit SDK prend en charge les options de configuration suivantes :

### cert
<a name="http-cert"></a>

Type  
 `string|array` 

Spécifier le certificat au format PEM côté client.
+ Définir en tant que chaîne pour le chemin d'accès au fichier de certificat uniquement.

```
use Aws\S3\S3Client;

$client = new S3Client([
    'region'  => 'us-west-2',
    'http'    => ['cert' => '/path/to/cert.pem']
]);
```
+ Définir en tant que tableau contenant le chemin d'accès et mot de passe.

```
use Aws\S3\S3Client;

$client = new S3Client([
    'region'  => 'us-west-2',
    'http'    => [
        'cert' => ['/path/to/cert.pem', 'password']
    ]
]);
```

### connect\$1timeout
<a name="http-connect-timeout"></a>

Valeur de type float indiquant le temps d'attente en secondes lors d'une tentative de connexion à un serveur. Spécifiez la valeur `0` pour indiquer une durée indéfinie (comportement par défaut).

```
use Aws\DynamoDb\DynamoDbClient;

// Timeout after attempting to connect for 5 seconds
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'connect_timeout' => 5
    ]
]);
```

### debug
<a name="http-debug"></a>

Type  
 `bool|resource` 

Indique au gestionnaire HTTP sous-jacent de générer des informations de débogage. Les informations de débogage fournies varient selon les gestionnaires HTTP.
+ Spécifiez `true` pour écrire la sortie de débogage dans STDOUT.
+ Spécifiez `resource`, comme renvoyé par `fopen`, pour écrire la sortie de débogage dans une ressource de flux PHP spécifique.

### decode\$1content
<a name="http-decode-content"></a>

Type  
 `bool` 

Indique au gestionnaire HTTP sous-jacent de gonfler le corps des réponses compressées. Lorsque cette option est désactivée, les corps des réponses compressées peuvent être gonflés à l'aide de `GuzzleHttp\Psr7\InflateStream`.

**Note**  
Le décodage du contenu est activé par défaut dans le gestionnaire HTTP par défaut du kit SDK. Pour des raisons de rétrocompatibilité, ce paramétrage ne peut pas être modifié. Si vous stockez des fichiers compressés dans Amazon S3, nous vous recommandons de désactiver le décodage du contenu au niveau du client S3.  

```
use Aws\S3\S3Client;
use GuzzleHttp\Psr7\InflateStream;

$client = new S3Client([
    'region'  => 'us-west-2',
    'http'    => ['decode_content' => false],
]);

$result = $client->getObject([
    'Bucket' => 'amzn-s3-demo-bucket',
    'Key'    => 'massize_gzipped_file.tgz'
]);

$compressedBody = $result['Body']; // This content is still gzipped
$inflatedBody = new InflateStream($result['Body']); // This is now readable
```

### delay
<a name="http-delay"></a>

Type  
 `int` 

Durée d'attente avant l'envoi de la requête (en millisecondes). Cette option est souvent utilisée pour retarder une nouvelle tentative de requête.

### expect
<a name="http-expect"></a>

Type  
 `bool|string` 

Cette option est transmise au gestionnaire HTTP sous-jacent. Par défaut, l'en-tête Expect: 100-Continue est défini lorsque le corps de la demande dépasse 1 Mo. `true` ou `false` active ou désactive l'en-tête sur toutes les demandes. Si un nombre entier est utilisé, seules les demandes avec des corps qui dépassent ce paramètre utiliseront l'en-tête. Lorsqu'elle est utilisée en tant que nombre entier, si la taille du corps est inconnue, l'en-tête Expect sera envoyé.

**Avertissement**  
La désactivation de l'en-tête Expect peut empêcher le service de renvoyer l'authentification ou d'autres erreurs. Cette option doit être configurée avec précautions.

### progress
<a name="http-progress"></a>

Type  
 `callable` 

Définit une fonction à appeler en cas d'avancement du transfert. La fonction accepte les arguments suivants :

1. Nombre total d'octets à télécharger estimé.

1. Nombre d'octets téléchargés jusqu'à présent.

1. Nombre d'octets à charger estimé.

1. Nombre d'octets chargés jusqu'à présent.

```
use Aws\S3\S3Client;

$client = new S3Client([
    'region'  => 'us-west-2'
]);

// Apply the http option to a specific command using the "@http"
// command parameter
$result = $client->getObject([
    'Bucket' => 'amzn-s3-demo-bucket',
    'Key'    => 'large.mov',
    '@http' => [
        'progress' => function ($expectedDl, $dl, $expectedUl, $ul) {
            printf(
                "%s of %s downloaded, %s of %s uploaded.\n",
                $expectedDl,
                $dl,
                $expectedUl,
                $ul
            );
        }
    ]
]);
```

### proxy
<a name="http-proxy"></a>

Type  
 `string|array` 

Vous pouvez vous connecter à un AWS service via un proxy en utilisant l'`proxy`option.
+ Fournissez une valeur de chaîne pour vous connecter à un proxy pour tous les types de URIs. La valeur de type chaîne proxy peut contenir un schéma, un nom d'utilisateur et un mot de passe. Par exemple, `"http://username:password@192.168.16.1:10"`.
+ Spécifiez un tableau associatif de paramètres proxy dans lequel la clé correspond au schéma de l'URI et la valeur correspond au proxy de l'URI donné (vous pouvez ainsi accorder différents proxys pour les points de terminaison « http » et « https »).

```
use Aws\DynamoDb\DynamoDbClient;

// Send requests through a single proxy
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'proxy' => 'http://192.168.16.1:10'
    ]
]);

// Send requests through a different proxy per scheme
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'proxy' => [
            'http' => 'tcp://192.168.16.1:10',
            'https' => 'tcp://192.168.16.1:11',
        ]
    ]
]);
```

Vous pouvez utiliser la variable d'environnement `HTTP_PROXY` pour configurer un proxy spécifique au protocole « http » et la variable d'environnement `HTTPS_PROXY` pour configurer un proxy spécifique au protocole « https ».

### sink
<a name="http-sink"></a>

Type  
 `resource|string|Psr\Http\Message\StreamInterface` 

L'option `sink` permet de contrôler l'emplacement dans lequel les données de réponse d'une opération sont téléchargées.
+ Spécifiez `resource`, comme renvoyé par `fopen`, pour télécharger le corps de la réponse dans un flux PHP.
+ Spécifiez le chemin d'accès d'un fichier sur disque sous la forme d'une valeur `string` pour télécharger le corps de la réponse dans ce fichier.
+ Spécifiez `Psr\Http\Message\StreamInterface` pour télécharger le corps de la réponse dans un objet de flux PSR spécifique.

**Note**  
Le kit SDK télécharge le corps de la réponse dans un flux temporaire PHP par défaut. Ainsi, les données restent en mémoire jusqu'à ce que la taille du corps atteigne 2 Mo, puis elles sont écrites dans un fichier temporaire sur disque.

### synchronous
<a name="http-sync"></a>

Type  
 `bool` 

L'option `synchronous` informe le gestionnaire HTTP sous-jacent que vous souhaitez bloquer le résultat.

### stream
<a name="http-stream"></a>

Type  
 `bool` 

Définissez cette option sur `true` pour indiquer au gestionnaire HTTP sous-jacent que vous souhaitez diffuser le corps d'une réponse depuis le service web, plutôt que de tout télécharger immédiatement. Par exemple, cette option est utilisée dans la classe Streamwrapper Amazon S3 pour garantir la diffusion des données.

### timeout
<a name="http-timeout"></a>

Type  
 `float` 

Valeur de type float indiquant le délai d'expiration de la requête (en secondes). Spécifiez la valeur `0` pour indiquer une durée indéfinie (comportement par défaut).

```
use Aws\DynamoDb\DynamoDbClient;

// Timeout after 5 seconds
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'timeout' => 5
    ]
]);
```

### vérifier
<a name="http-verify"></a>

Type  
 `bool|string` 

Vous pouvez personnaliser le comportement de vérification des SSL/TLS certificats homologues du SDK à l'aide de `verify` `http` cette option.
+ Définissez sur `true` pour activer la vérification des certificats SSL/TLS homologues et utiliser le bundle CA par défaut fourni par le système d'exploitation.
+ Définissez cette option sur `false` pour désactiver la vérification des certificats pairs. (Cette méthode n'est pas sécurisée \$1)
+ Définissez cette option sur une chaîne pour indiquer le chemin d'accès à un bundle d'autorité de certification (CA) afin d'activer la vérification à l'aide de ce bundle personnalisé.

Si le bundle d'autorité de certification (CA) est introuvable pour votre système et si vous recevez une erreur, indiquez le chemin d'accès à un bundle d'autorité de certification pour le kit SDK. Si vous n’avez pas besoin d’un bundle d’autorité de certification spécifique (CA), Mozilla en propose un couramment utilisé, que vous pouvez télécharger [ici](https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt) (géré par le mainteneur de cURL). Une fois que vous disposez d'un bundle d'autorité de certification (CA) sur un disque, vous pouvez définir le paramètre .ini PHP `openssl.cafile` de sorte qu'il pointe vers le chemin d'accès du fichier, ce qui vous permet d'ignorer l'option `verify` pour la requête. Vous trouverez plus de détails sur les certificats SSL sur le [site web de cURL](http://curl.haxx.se/docs/sslcerts.html).

```
use Aws\DynamoDb\DynamoDbClient;

// Use a custom CA bundle
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'verify' => '/path/to/my/cert.pem'
    ]
]);

// Disable SSL/TLS verification
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'verify' => false
    ]
]);
```

## http\$1handler
<a name="http-handler"></a>

Type  
 `callable` 

L'option `http_handler` permet d'intégrer le kit SDK à d'autres clients HTTP. Une option `http_handler` est une fonction qui accepte un objet `Psr\Http\Message\RequestInterface` et un ensemble d'options `http` appliquées à la commande. Elle renvoie un objet `GuzzleHttp\Promise\PromiseInterface` qui est exécuté avec un objet `Psr\Http\Message\ResponseInterface` ou rejeté avec un ensemble des données d'exception suivantes :
+  `exception` - (`\Exception`) : exception rencontrée.
+  `response` - (`Psr\Http\Message\ResponseInterface`) : réponse reçue (le cas échéant).
+  `connection_error` - (bool) défini sur `true` pour marquer l'erreur comme une erreur de connexion. Si vous définissez cette valeur sur `true`, le kit SDK retente automatiquement l'opération, si nécessaire.

Le kit SDK convertit automatiquement l'option `http_handler` donnée en option `handler` normale en encapsulant l'option `http_handler` fournie avec un objet `Aws\WrappedHttpHandler`.

Par défaut, le kit SDK utilise Guzzle comme gestionnaire HTTP. Vous pouvez fournir un gestionnaire HTTP différent ici, ou fournir à un client Guzzle vos propres options personnalisées.

 **Définition de la version de TLS** 

Un cas d'utilisation consiste à définir la version de TLS utilisée par Guzzle avec Curl, en supposant que Curl est installé dans votre environnement. Notez les [contraintes de version](https://curl.haxx.se/libcurl/c/CURLOPT_SSLVERSION.html) Curl concernant les versions de TLS prise en charge. Par défaut, c'est la dernière version qui est utilisée. Si la version de TLS est explicitement définie et que le serveur distant ne prend pas en charge cette version, il génère une erreur au lieu d'utiliser une version de TLS antérieure.

Vous pouvez déterminer la version de TLS utilisée pour une opération client donnée en définissant l'option client `debug` sur true et en examinant la sortie de connexion SSL. Cette ligne peut ressembler à ce qui suit : `SSL connection using TLSv1.2` 

Exemple de définition de TLS 1.2 avec Guzzle 6 :

```
use Aws\DynamoDb\DynamoDbClient;
use Aws\Handler\GuzzleV6\GuzzleHandler;
use GuzzleHttp\Client;

$handler = new GuzzleHandler(
    new Client([
        'curl' => [
            CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2
        ]
    ])
);

$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http_handler' => $handler
]);
```

**Note**  
L'option `http_handler` prévaut sur toutes les autres options `handler` fournies.

## profile
<a name="profile"></a>

Type  
 `string` 

L'option « profile » indique le profil à utiliser lorsque les informations d'identification sont créées à partir du fichier AWS d'informations d'identification de votre répertoire HOME (généralement`~/.aws/credentials`). Ce paramètre remplace la variable d'environnement `AWS_PROFILE`.

**Note**  
Lorsque vous spécifiez l'option « profile », celle-ci est ignorée et les `"credentials"` paramètres relatifs aux informations d'identification dans le fichier de AWS configuration sont (généralement`~/.aws/config`) ignorés.

```
// Use the "production" profile from your credentials file
$ec2 = new Aws\Ec2\Ec2Client([
    'version' => '2014-10-01',
    'region'  => 'us-west-2',
    'profile' => 'production'
]);
```

Voir [Informations d'identification pour la AWS SDK pour PHP version 3](guide_credentials.md) pour plus d'informations sur la configuration des informations d'identification et le format de fichier .ini.

## region
<a name="cfg-region"></a>

Type  
 `string` 

Obligatoire  
true

AWS Région à laquelle se connecter. Consultez les [AWS régions et points de terminaison](https://docs.aws.amazon.com/general/latest/gr/rande.html) pour obtenir la liste des régions disponibles.

```
// Set the Region to the EU (Frankfurt) Region
$s3 = new Aws\S3\S3Client([
    'region'  => 'eu-central-1',
    'version' => '2006-03-01'
]);
```

## nouvelles tentatives
<a name="config-retries"></a>

Type  
 `int|array|Aws\CacheInterface|Aws\Retry\ConfigurationInterface|callable` 

Par défaut  
 `int(3)` 

Configure le mode de nouvelles tentatives et le nombre maximal de tentatives autorisées pour un client. Spécifiez `0` pour désactiver les nouvelles tentatives.

Les trois modes de nouvelle tentative sont les suivants :
+ `legacy`- l'ancienne implémentation par défaut des nouvelles tentatives
+ `standard`- ajoute un système de quota de nouvelles tentatives pour empêcher les nouvelles tentatives qui ont peu de chances de réussir 
+  `adaptive` - s'appuie sur le mode standard, en ajoutant un limiteur de débit côté client. Notez que ce mode est considéré comme expérimental.

La configuration des tentatives est composée du mode et du nombre maximal de tentatives à utiliser pour chaque demande. La configuration peut être définie dans plusieurs emplacements différents, dans l'ordre de priorité suivant.

 **Ordre de priorité** 

L'ordre de priorité pour la nouvelle configuration est le suivant (1 remplace 2-3, etc.) :

1. Option de configuration du client

1. Variables d’environnement

1. AWS Fichier de configuration partagé

 **Variables d'environnement** 
+  `AWS_RETRY_MODE` - défini sur `legacy`, `standard` ou `adaptive`
+  `AWS_MAX_ATTEMPTS` - défini sur une valeur entière pour le maximum de tentatives par demande

 **Clés du fichier de configuration partagé** 
+  `retry_mode` - défini sur `legacy`, `standard` ou `adaptive`
+  `max_attempts` - défini sur une valeur entière pour le maximum de tentatives par demande

 **Configuration du client** 

L'exemple suivant désactive les nouvelles tentatives pour le client Amazon DynamoDB.

```
// Disable retries by setting "retries" to 0
$client = new Aws\DynamoDb\DynamoDbClient([
    'version' => '2012-08-10',
    'region'  => 'us-west-2',
    'retries' => 0
]);
```

L'exemple suivant passe dans un entier, qui sera par défaut sur le mode `legacy` avec le nombre de tentatives passé

```
// Disable retries by setting "retries" to 0
$client = new Aws\DynamoDb\DynamoDbClient([
    'version' => '2012-08-10',
    'region'  => 'us-west-2',
    'retries' => 6
]);
```

**L'objet `Aws\Retry\Configuration` accepte deux paramètres, le mode de nouvelles tentatives**  
et un entier pour le maximum de tentatives par demande. Cet exemple passe dans un

 objet `Aws\Retry\Configuration` pour la configuration des nouvelles tentatives.

```
use Aws\EndpointDiscovery\Configuration;
use Aws\S3\S3Client;

$enabled = true;
$cache_limit = 1000;

$config = new Aws\Retry\Configuration('adaptive', 10);

$s3 = new Aws\S3\S3Client([
    'region' => 'us-east-2',
    'retries' => $config,
]);
```

Cet exemple passe dans un tableau pour la configuration des nouvelles tentatives.

```
use Aws\S3\S3Client;

$s3 = new S3Client([
    'region' => 'us-west-2',
    'retries' => [
        'mode' => 'standard',
        'max_attempts' => 7
    ],
]);
```

Cet exemple passe une instance de `Aws\CacheInterface` pour mettre en cache les valeurs renvoyées par le fournisseur de configuration des nouvelles tentatives par défaut.

```
use Aws\DoctrineCacheAdapter;
use Aws\S3\S3Client;
use Doctrine\Common\Cache\ApcuCache;

$s3 = new S3Client([
    'region' => 'us-west-2',
    'endpoint_discovery' => new DoctrineCacheAdapter(new ApcuCache),
]);
```

## scheme
<a name="scheme"></a>

Type  
 `string` 

Par défaut  
 `string(5) "https"` 

Schéma d'URI à utiliser lors de la connexion. Le kit SDK utilise des points de terminaison « https » (connexions SSL/TLS) par défaut. Vous pouvez essayer de vous connecter à un service via un point de terminaison « http » non chiffré en définissant `scheme` sur « http ».

```
$s3 = new Aws\S3\S3Client([
    'version' => '2006-03-01',
    'region'  => 'us-west-2',
    'scheme'  => 'http'
]);
```

Consultez les [AWS régions et les points de terminaison](https://docs.aws.amazon.com/general/latest/gr/rande.html) pour obtenir la liste des points de terminaison et savoir si un service prend en charge le `http` schéma.

## web
<a name="service"></a>

Type  
 `string` 

Obligatoire  
true

Nom du service à utiliser. Cette valeur est renseignée par défaut lorsque vous utilisez un client fourni par le kit SDK (`Aws\S3\S3Client`). Cette option s'avère utile lorsque vous testez un service qui n'a pas encore été publié dans le kit SDK, mais dont vous disposez sur un disque.

## signature\$1provider
<a name="signature-provider"></a>

Type  
 `callable` 

Un appelable qui accepte un nom de version de signature (par exemple,`v4`), un nom de service et une AWS région et qui renvoie un `Aws\Signature\SignatureInterface` objet ou `NULL` si le fournisseur est en mesure de créer un signataire pour les paramètres donnés. Ce fournisseur permet de créer des utilisateurs utilisés par le client.

Le kit SDK propose plusieurs fonctions dans la classe `Aws\Signature\SignatureProvider` qui permettent de créer des fournisseurs de signatures personnalisés.

## signature\$1version
<a name="signature-version"></a>

Type  
 `string` 

Chaîne représentant une version de signature personnalisée à utiliser avec un service (par exemple, `v4`, etc.). Une version de signature par opération PEUT remplacer cette version de signature demandée, si nécessaire.

Les exemples suivants montrent comment configurer un client Amazon S3 pour utiliser la [version 4 de signature](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) :

```
// Set a preferred signature version
$s3 = new Aws\S3\S3Client([
    'version'           => '2006-03-01',
    'region'            => 'us-west-2',
    'signature_version' => 'v4'
]);
```

**Note**  
L'option `signature_provider` utilisée par votre client DOIT pouvoir créer l'option `signature_version` que vous spécifiez. L'option `signature_provider` utilisée par défaut par le kit SDK peut créer des objets de signature pour les versions de signature « anonymous » et « v4 ».

## ua\$1append
<a name="ua-append"></a>

Type  
 `string|string[]` 

Par défaut  
 `[]` 

Chaîne ou tableau de chaînes ajoutées à la chaîne de l'agent utilisateur transmise au gestionnaire HTTP.

## utilisez\$1aws\$1shared\$1config\$1files
<a name="use-aws-shared-config-files"></a>

Type  
 `bool|array` 

Par défaut  
 `bool(true)` 

Définissez cette valeur sur false pour désactiver la vérification du fichier de configuration partagé dans « \$1/ ». aws/config’ and ‘\$1/.aws/credentials'. Cela remplacera la variable d' AWS\$1CONFIG\$1FILE environnement.

## valider
<a name="validate"></a>

Type  
 `bool|array` 

Par défaut  
 `bool(true)` 

Définissez cette option sur `false` pour désactiver la validation des paramètres côté client. Vous pouvez constater une légère amélioration au niveau des performances du client lorsque la validation est désactivée, mais la différence est négligeable.

```
// Disable client-side validation
$s3 = new Aws\S3\S3Client([
    'version'  => '2006-03-01',
    'region'   => 'eu-west-1',
    'validate' => false
]);
```

Définissez cette option sur un tableau associatif d'options de validation pour activer des contraintes de validation spécifiques :
+  `required` - Vérifie que les paramètres obligatoires sont présents (activé par défaut).
+  `min` - Vérifie la longueur minimale d'une valeur (activé par défaut).
+  `max` - Vérifie la longueur maximale d'une valeur.
+  `pattern` - Vérifie que la valeur correspond à une expression régulière.

```
// Validate only that required values are present
$s3 = new Aws\S3\S3Client([
    'version'  => '2006-03-01',
    'region'   => 'eu-west-1',
    'validate' => ['required' => true]
]);
```

## version
<a name="cfg-version"></a>

Type  
 `string` 

Obligatoire  
false

Cette option indique la version du service Web à utiliser (par exemple,`2006-03-01`).

À partir de la version 3.277.10 du SDK, l'option « version » n'est pas requise. Si vous ne spécifiez pas l'option « version », le SDK utilise la dernière version du client de service.

Deux situations nécessitent un paramètre « version » lorsque vous créez un client de service.
+ Vous utilisez une version du SDK PHP antérieure à la version 3.277.10.
+ Vous utilisez la version 3.277.10 ou ultérieure et souhaitez utiliser une version autre que la « dernière » pour un client de service.

Par exemple, l'extrait suivant utilise la version 3.279.7 du SDK, mais pas la dernière version du. `Ec2Client`

```
$ec2Client = new \Aws\Ec2\Ec2Client([
    'version' => '2015-10-01',
    'region' => 'us-west-2'
]);
```

La spécification d'une contrainte de version vous permet de vous assurer que les modifications avec rupture apportées au service n'affecteront pas votre code.

Vous pouvez consulter la liste des versions d'API disponibles sur la [page de documentation de l'API](https://docs.aws.amazon.com/aws-sdk-php/v3/api/index.html) de chaque client. Si vous ne parvenez pas à charger une version d'API spécifique, il se peut que vous deviez mettre à jour votre copie du kit SDK.