

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.

# FAQ pour AWS SDK pour PHP la version 3
<a name="faq"></a>

## Quelles méthodes sont disponibles sur un client ?
<a name="what-methods-are-available-on-a-client"></a>

Il AWS SDK pour PHP utilise des descriptions de service et des [méthodes magiques dynamiques \$1\$1call ()](http://www.php.net/manual/en/language.oop5.overloading.php#object.call) pour exécuter des opérations d'API. Vous trouverez la liste complète des méthodes disponibles pour un client de service Web dans la [documentation d’API](https://docs.aws.amazon.com/aws-sdk-php/v3/api/index.html) du client.

## Que dois-je faire en cas d'erreur de certificat cURL SSL ?
<a name="what-do-i-do-about-a-curl-ssl-certificate-error"></a>

Ce problème peut se produire lors de l'utilisation d'un bundle out-of-date CA avec cURL et SSL. Vous pouvez contourner ce problème en mettant à jour le bundle CA sur votre serveur ou en téléchargeant un autre bundle up-to-date CA directement depuis le [site Web cURL](http://curl.haxx.se/docs/caextract.html).

Par défaut, ils AWS SDK pour PHP utiliseront le bundle CA configuré lors de la compilation de PHP. Vous pouvez modifier le bundle d'autorité de certification (CA) par défaut utilisé par PHP en modifiant le paramètre de configuration .ini PHP `openssl.cafile` à définir par le chemin d'accès d'un fichier d'autorité de certification (CA) sur disque.

## Quelles versions d'API sont disponibles pour un client ?
<a name="what-api-versions-are-available-for-a-client"></a>

Une option `version` est requise lors de la création d'un client. Une liste des versions d'API disponibles se trouve sur la page de documentation de l'API de chaque client : : aws-php-class :<index.html>. Si vous ne parvenez pas à charger une version d'API spécifique, il se peut que vous deviez mettre à jour votre copie du kit AWS SDK pour PHP.

Vous pouvez spécifier la chaîne `latest` dans la valeur de configuration « version » pour utiliser la version d'API disponible la plus récente du fournisseur d'API de votre client (le fournisseur d'API par défaut recherchera les modèles d'API disponibles dans le répertoire `src/data` du kit SDK).

**Avertissement**  
Nous vous déconseillons de spécifier `latest` dans une application en production. En effet, l'intégration d'une nouvelle version mineure du kit SDK comprenant une mise à jour d'API peut entraîner l'échec de votre application en production.

## Quelles versions de région sont disponibles pour un client ?
<a name="what-region-versions-are-available-for-a-client"></a>

L'option `region` est requise lors de la création d'un client et doit être spécifiée à l'aide d'une valeur de chaîne. Pour obtenir la liste des AWS régions et points de terminaison disponibles, consultez la section [AWS Régions et points de terminaison](https://docs.aws.amazon.com/general/latest/gr/rande.html) dans le. Références générales AWS

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

## Pourquoi ne puis-je pas charger ou télécharger des fichiers de plus de 2 Go ?
<a name="why-can-t-i-upload-or-download-files-larger-than-2-gb"></a>

Le type entier de PHP étant signé et de nombreuses plateformes utilisant les entiers 32 bits, le kit AWS SDK pour PHP ne gère pas correctement les fichiers de plus de 2 Go sur une pile 32 bits (où « pile » inclut l'UC, le système d'exploitation, le serveur Web et le binaire PHP). Il s’agit d’un [problème connu de PHP](http://www.google.com/search?q=php+2gb+32-bit). Dans le cas de Microsoft Windows, seules les versions de PHP 7 prennent en charge les entiers 64 bits.

La solution recommandée consiste à utiliser une [pile Linux 64 bits](https://aws.amazon.com/amazon-linux-ami/), telle que l’AMI Linux Amazon 64 bits, dotée de la dernière version de PHP.

Pour plus d’informations, consultez la section [Taille de fichier PHP : valeurs renvoyées](http://docs.php.net/manual/en/function.filesize.php#refsect1-function.filesize-returnvalues).

## Comment savoir quelles données sont envoyées sur le réseau ?
<a name="how-can-i-see-what-data-is-sent-over-the-wire"></a>

Vous pouvez obtenir des informations de débogage, y compris les données envoyées sur le réseau, à l'aide de l'option `debug` d'un constructeur client. Lorsque cette option est définie sur `true`, l'ensemble des mutations de la commande exécutée, de la requête envoyée, de la réponse reçue et du résultat traité sont émises vers STDOUT. Cela inclut les données envoyées et reçues sur le réseau.

```
$s3Client = new Aws\S3\S3Client([
    'region'  => 'us-standard',
    'version' => '2006-03-01',
    'debug'   => true
]);
```

## Comment puis-je définir des en-têtes arbitraires sur une requête ?
<a name="how-can-i-set-arbitrary-headers-on-a-request"></a>

Vous pouvez ajouter des en-têtes arbitraires à une opération de service en ajoutant un intergiciel personnalisé à la `Aws\HandlerList` d'une `Aws\CommandInterface` ou d'une `Aws\ClientInterface`. L'exemple suivant montre comment ajouter un `X-Foo-Baz` en-tête à une `PutObject` opération Amazon S3 spécifique à l'aide de la méthode d'`Aws\Middleware::mapRequest`assistance.

Pour plus d’informations, consultez la section [mapRequest](guide_handlers-and-middleware.md#map-request).

## Comment puis-je signer une requête arbitraire ?
<a name="how-can-i-sign-an-arbitrary-request"></a>

Vous pouvez signer une requête arbitraire : aws-php-class : *PSR-7 <class-PSR.http.Message. *RequestInterface*.html> en utilisant la classe : aws-php-class : SignatureV4 du SDK.* <class-Aws.Signature.SignatureV4.html>

Consultez [Signing Custom CloudSearch Domain Requests with Amazon Domain Requests with AWS SDK pour PHP Version 3](service_cloudsearch-custom-requests.md) pour un exemple complet de la procédure à suivre.

## Comment puis-je modifier une commande avant de l'envoyer ?
<a name="how-can-i-modify-a-command-before-sending-it"></a>

Vous pouvez modifier une commande avant de l'envoyer en ajoutant un intergiciel personnalisé à la `Aws\HandlerList` d'une `Aws\CommandInterface` ou d'une `Aws\ClientInterface`. L'exemple suivant montre comment ajouter des paramètres de commande personnalisés à une commande avant de l'envoyer, principalement en ajoutant des options par défaut. Cet exemple utilise la méthode d'assistance `Aws\Middleware::mapCommand`.

Pour plus d’informations, consultez la section [mapCommand](guide_handlers-and-middleware.md#map-command).

## Qu'est-ce qu'un CredentialsException ?
<a name="what-is-a-credentialsexception"></a>

Si vous constatez `Aws\Exception\CredentialsException` que vous utilisez le AWS SDK pour PHP, cela signifie que le SDK n'a reçu aucune information d'identification et qu'il n'a pas pu trouver d'informations d'identification dans l'environnement.

Si vous instanciez un client *sans* information d’identification, le kit SDK tente de trouver des informations d’identification à la première exécution d’une opération de service. Il intègre d'abord certaines variables d'environnement spécifiques, puis il recherche les informations d'identification du profil d'instance, qui ne sont disponibles que sur les EC2 instances Amazon configurées. En l'absence d'information d'identification, une `Aws\Exception\CredentialsException` est levée.

Si cette erreur s'affiche et que vous avez l'intention d'utiliser les informations d'identification du profil d'instance, vous devez vous assurer que l' EC2 instance Amazon sur laquelle le SDK est exécuté est configurée avec un rôle IAM approprié.

Si vous rencontrez cette erreur et que vous ne prévoyez **pas** d’utiliser les informations d’identification du profil d’instance, veillez à fournir des informations d’identification correctes au kit SDK.

Pour plus d'informations, consultez la section [Informations d'identification pour la AWS SDK pour PHP version 3](guide_credentials.md).

## Est-ce que cela AWS SDK pour PHP fonctionne sur HHVM ?
<a name="does-the-sdk-php-work-on-hhvm"></a>

Le AWS SDK pour PHP ne fonctionne pas actuellement sur HHVM et ne pourra pas le faire tant que le [problème lié à la sémantique du rendement dans](https://github.com/facebook/hhvm/issues/6807) HHVM ne sera pas résolu.

## Comment désactiver SSL ?
<a name="how-do-i-disable-ssl"></a>

Vous pouvez désactiver SSL en définissant le paramètre `scheme` d'une méthode de fabrique de client sur « http ». Il est important de noter que tous les services ne prennent pas en charge l'accès `http`. Voir [AWS Régions et points de terminaison](https://docs.aws.amazon.com/general/latest/gr/rande.html) dans le Références générales AWS pour obtenir la liste des régions, des points de terminaison et des schémas pris en charge.

```
$client = new Aws\DynamoDb\DynamoDbClient([
    'version' => '2012-08-10',
    'region'  => 'us-west-2',
    'scheme'  => 'http'
]);
```

**Avertissement**  
SSL impose que toutes les données soient chiffrées et requiert davantage de paquets TCP que le protocole TCP seul pour établir une liaison de connexion. La désactivation de SSL peut donc se traduire par une légère amélioration des performances. Cependant, une fois SSL désactivé, toutes les données sont envoyées sur le réseau non chiffrées. Avant de désactiver SSL, prenez en compte les répercussions de sa désactivation sur la sécurité et le risque d'écoute illicite sur le réseau.

## Que dois-je faire face à une « erreur d'analyse » ?
<a name="what-do-i-do-about-a-parse-error"></a>

Le moteur PHP génère des erreurs d'analyse lorsqu'il rencontre une syntaxe qu'il ne comprend pas. Cette situation se produit quasi systématiquement lorsque le moteur tente d'exécuter du code écrit pour une autre version de PHP.

Si vous rencontrez une erreur d'analyse, vérifiez votre système et assurez-vous qu'il répond [aux exigences et aux recommandations du SDK pour la AWS SDK pour PHP](getting-started_requirements.md) version 3.

## Pourquoi le client Amazon S3 décompresse-t-il les fichiers compressés au format gzippé ?
<a name="why-is-the-s3-client-decompressing-gzipped-files"></a>

Certains gestionnaires HTTP, dont le gestionnaire HTTP Guzzle 6 par défaut, gonflent le corps des réponses compressées par défaut. Vous pouvez remplacer ce comportement en définissant l’option HTTP [decode\$1content](guide_configuration.md#http-decode-content) sur `false`. Pour des raisons de rétrocompatibilité, cette valeur par défaut ne peut pas être modifiée, mais nous vous recommandons de désactiver le décodage du contenu au niveau du client S3.

Consultez la section [decode\$1content](guide_configuration.md#http-decode-content) pour obtenir un exemple de désactivation du décodage de contenu automatique.

## Comment désactiver la signature corporelle dans Amazon S3 ?
<a name="how-do-i-disable-body-signing-in-s3"></a>

Vous pouvez désactiver la signature du corps en définissant le paramètre `ContentSHA256` de l'objet de commande sur `Aws\Signature\S3SignatureV4::UNSIGNED_PAYLOAD`. Ensuite, ils l' AWS SDK pour PHP utiliseront comme en-tête « x-amz-content-sha -256 » et comme somme de contrôle du corps de la demande canonique.

```
$s3Client = new Aws\S3\S3Client([
    'version' => '2006-03-01',
    'region'  => 'us-standard'
]);

$params = [
    'Bucket' => 'foo',
    'Key'    => 'baz',
    'ContentSHA256' => Aws\Signature\S3SignatureV4::UNSIGNED_PAYLOAD
];

// Using operation methods creates command implicitly
$result = $s3Client->putObject($params);

// Using commands explicitly.
$command = $s3Client->getCommand('PutObject', $params);
$result = $s3Client->execute($command);
```

## Comment le schéma de nouvelle tentative est-il géré dans le kit AWS SDK pour PHP ?
<a name="how-is-retry-scheme-handled-in-the-sdk-php"></a>

 AWS SDK pour PHP Possède un `RetryMiddleware` qui gère le comportement des nouvelles tentatives. En ce qui concerne les codes de statut HTTP 5xx pour les erreurs de serveur, le kit SDK lance une nouvelle tentative sur 500, 502, 503 et 504.

Les exceptions de limitation, y compris `RequestLimitExceeded`, `Throttling`, `ProvisionedThroughputExceededException`, `ThrottlingException`, `RequestThrottled` et `BandwidthLimitExceeded`, sont également gérées avec les nouvelles tentatives.

 AWS SDK pour PHP Il intègre également un délai exponentiel à un algorithme de recul et de gigue dans le schéma de réessai. En outre, le comportement de nouvelle tentative par défaut est configuré comme `3` pour tous les services, à l'exception d'Amazon DynamoDB, qui l'est. `10`

## Comment gérer les exceptions avec des codes d'erreur ?
<a name="how-do-i-handle-exceptions-with-error-codes"></a>

Outre `Exception` les classes AWS SDK pour PHP-custom, chaque client AWS de service possède sa propre classe d'exception qui hérite de. [AwsExceptionAwsException](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.Exception.AwsException.html) Vous pouvez affiner les types d'erreur à identifier avec les erreurs d'API spécifiques répertoriées dans la section `Errors` de chaque méthode.

Les informations relatives au code d'erreur sont disponibles avec [getAwsErrorCode ()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.Exception.AwsException.html#_getAwsErrorCode) à partir de`Aws\Exception\AwsException`.

```
$sns = new \Aws\Sns\SnsClient([
    'region' => 'us-west-2',
    'version' => 'latest',
]);

try {
    $sns->publish([
        // parameters
        ...
    ]);
    // Do something
} catch (SnsException $e) {
    switch ($e->getAwsErrorCode()) {
        case 'EndpointDisabled':
        case 'NotFound':
            // Do something
            break;
    }
}
```