

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Häufig gestellte Fragen zu AWS SDK für PHP Version 3
<a name="faq"></a>

## Welche Methoden sind auf einem Client verfügbar?
<a name="what-methods-are-available-on-a-client"></a>

Die AWS SDK für PHP verwendet Dienstbeschreibungen und dynamische [magische \$1\$1call () -Methoden](http://www.php.net/manual/en/language.oop5.overloading.php#object.call), um API-Operationen auszuführen. Eine vollständige Liste der verfügbaren Methoden für einen Web-Service-Client finden Sie in der [API-Dokumentation](https://docs.aws.amazon.com/aws-sdk-php/v3/api/index.html) des Clients.

## Was mache ich bei einem cURL SSL-Zertifikatsfehler?
<a name="what-do-i-do-about-a-curl-ssl-certificate-error"></a>

Dieses Problem kann auftreten, wenn Sie ein out-of-date CA-Bundle mit cURL und SSL verwenden. Sie können dieses Problem umgehen, indem Sie das CA-Bundle auf Ihrem Server aktualisieren oder ein weiteres up-to-date CA-Bundle [direkt von der cURL-Website](http://curl.haxx.se/docs/caextract.html) herunterladen.

Standardmäßig AWS SDK für PHP wird das CA-Bundle verwendet, das bei der Kompilierung von PHP konfiguriert wurde. Sie können das von PHP verwendete Standard-CA-Bundle ändern, indem Sie die Konfigurationseinstellung `openssl.cafile` PHP .ini auf den Pfad einer CA-Datei auf der Festplatte setzen.

## Welche API-Versionen sind für einen Client verfügbar?
<a name="what-api-versions-are-available-for-a-client"></a>

Beim Erstellen eines Clients ist eine `version`-Option erforderlich. Eine Liste der verfügbaren API-Versionen finden Sie auf der API-Dokumentationsseite jedes Kunden::aws-php-class:<index.html>. Wenn Sie eine bestimmte API-Version nicht laden können, müssen Sie möglicherweise Ihre Kopie von AWS SDK für PHP aktualisieren.

Sie können die Zeichenkette `latest` für den Konfigurationswert „version“ übergeben, um die aktuellste verfügbare API-Version zu verwenden, die der API-Provider Ihres Clients finden kann (der standardmäßige api\$1provider durchsucht das Verzeichnis `src/data` des SDK nach API-Modellen).

**Warnung**  
Wir empfehlen nicht, `latest` in einer Produktionsanwendung zu verwenden, da das Einfügen einer neuen Nebenversion des SDK, die ein API-Update enthält, Ihre Produktionsanwendung beschädigen könnte.

## Welche Regionsversionen sind für einen Client verfügbar?
<a name="what-region-versions-are-available-for-a-client"></a>

Eine `region`-Option wird beim Erstellen eines Clients benötigt und über einen Zeichenfolgenwert angegeben. Eine Liste der verfügbaren AWS Regionen und Endpunkte finden Sie unter [AWS Regionen und Endpunkte](https://docs.aws.amazon.com/general/latest/gr/rande.html) in der. Allgemeine AWS-Referenz

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

## Warum kann ich keine Dateien mit Größen über 2 GB hoch- oder herunterladen?
<a name="why-can-t-i-upload-or-download-files-larger-than-2-gb"></a>

Da der Ganzzahl-Typ von PHP vorzeichensensitiv ist und viele Plattformen 32-Bit-Ganzzahlen verwenden, behandelt AWS SDK für PHP Dateien, die größer als 2 GB sind, auf einem 32-Bit-Stack (wobei der begriff „Stack“ CPU, Betriebssystem, Webserver und PHP-Binärdatei beinhaltet) nicht korrekt. Dies ist ein [bekanntes Problem von PHP](http://www.google.com/search?q=php+2gb+32-bit). Im Fall von Microsoft Windows 7 unterstützen nur Builds von PHP 7 64-Bit-Ganzzahlwerte.

Die empfohlene Lösung ist die Verwendung eines [64-Bit Linux-Stacks](https://aws.amazon.com/amazon-linux-ami/), wie die 64-Bit Amazon Linux AMI, mit der neuesten Version von PHP.

Weitere Informationen finden Sie unter [PHP-Dateigröße: Rückgabewerte](http://docs.php.net/manual/en/function.filesize.php#refsect1-function.filesize-returnvalues).

## Wie kann ich sehen, welche Daten übertragen wurden?
<a name="how-can-i-see-what-data-is-sent-over-the-wire"></a>

Sie können Debugging-Informationen, einschließlich der über die Leitung gesendeten Daten, mit der Option `debug` in einem Client-Konstruktor erhalten. Wenn diese Option auf `true` gesetzt ist, werden alle Mutationen des ausgeführten Befehls, der gesendeten Anfrage, der empfangenen Antwort und des verarbeiteten Ergebnisses an STDOUT gesendet. Dies umfasst alle Daten, die gesendet und empfangen werden.

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

## Wie kann ich zufällige Header für eine Anforderung festlegen?
<a name="how-can-i-set-arbitrary-headers-on-a-request"></a>

Sie können beliebige Header zu einer Service-Operation hinzufügen, indem Sie eine benutzerdefinierte Middleware zur `Aws\HandlerList` eines `Aws\CommandInterface` oder `Aws\ClientInterface` hinzufügen. Das folgende Beispiel zeigt, wie einem bestimmten Amazon S3 `PutObject` S3-Vorgang mithilfe der `Aws\Middleware::mapRequest` Helper-Methode ein `X-Foo-Baz` Header hinzugefügt wird.

Weitere Informationen finden Sie unter [mapRequest](guide_handlers-and-middleware.md#map-request).

## Wie kann ich eine beliebige Anforderung signieren?
<a name="how-can-i-sign-an-arbitrary-request"></a>

Sie können eine beliebige:aws-php-class: *PSR-7-Anfrage <class-psr.http.Message signieren. *RequestInterface*.html> mithilfe der SignatureV4-Klasse des SDK::. aws-php-class* <class-Aws.Signature.SignatureV4.html>

Ein vollständiges Beispiel dafür finden Sie unter [Signieren von benutzerdefinierten CloudSearch Amazon-Domain-Anfragen mit AWS SDK für PHP Version 3.](service_cloudsearch-custom-requests.md)

## Wie kann ich einen Befehl vor dem Senden ändern?
<a name="how-can-i-modify-a-command-before-sending-it"></a>

Sie können einen Befehl vor dem Senden ändern, indem Sie der `Aws\HandlerList` einer `Aws\CommandInterface` oder `Aws\ClientInterface` eine benutzerdefinierte Middleware hinzufügen. Das folgende Beispiel zeigt, wie benutzerdefinierte Befehlsparameter zu einem Befehl hinzugefügt werden können, bevor er gesendet wird, wobei im Wesentlichen Standardoptionen hinzugefügt werden. Dieses Beispiel verwendet die `Aws\Middleware::mapCommand`-Helfermethode.

Weitere Informationen finden Sie unter [mapCommand](guide_handlers-and-middleware.md#map-command).

## Was ist ein CredentialsException?
<a name="what-is-a-credentialsexception"></a>

Wenn Sie das eine `Aws\Exception\CredentialsException` Weile verwenden, bedeutet das AWS SDK für PHP, dass dem SDK keine Anmeldeinformationen zur Verfügung gestellt wurden und das SDK keine Anmeldeinformationen in der Umgebung finden konnte.

Wenn Sie einen Client *ohne* Anmeldeinformationen instanziieren, versucht das SDK bei der ersten Ausführung einer Serviceoperation, Anmeldeinformationen zu finden. Es checkt zuerst einige spezifische Umgebungsvariablen ein und sucht dann nach Anmeldeinformationen für Instance-Profile, die nur auf konfigurierten EC2 Amazon-Instances verfügbar sind. Wenn keine Anmeldeinformationen angegeben oder zu finden sind, wird eine `Aws\Exception\CredentialsException` aufgeworfen.

Wenn dieser Fehler angezeigt wird und Sie beabsichtigen, Anmeldeinformationen für das Instance-Profil zu verwenden, müssen Sie sicherstellen, dass die EC2 Amazon-Instance, auf der das SDK ausgeführt wird, mit einer geeigneten IAM-Rolle konfiguriert ist.

Wenn Sie diesen Fehler sehen und Sie **nicht** beabsichtigen, Instance-Profil-Anmeldeinformationen zu verwenden, müssen Sie sicher stellen, dass Sie dem SDK korrekt Anmeldeinformationen zur Verfügung stellen.

Weitere Informationen finden Sie unter [Anmeldeinformationen für AWS SDK für PHP Version 3.](guide_credentials.md)

## AWS SDK für PHP Funktioniert das auf HHVM?
<a name="does-the-sdk-php-work-on-hhvm"></a>

Das läuft derzeit AWS SDK für PHP nicht auf HHVM und wird auch nicht in der Lage sein, bis das [Problem mit der Yield-Semantik in HHVM behoben](https://github.com/facebook/hhvm/issues/6807) ist.

## Wie deaktiviere ich SSL?
<a name="how-do-i-disable-ssl"></a>

Sie können SSL deaktivieren, indem Sie den `scheme`-Parameter in einer Client-Factory-Methode auf „http“ setzen. Beachten Sie, dass nicht alle Services `http`-Zugriff unterstützen. Eine Liste der [AWS Regionen, Endpunkte und](https://docs.aws.amazon.com/general/latest/gr/rande.html) der unterstützten Allgemeine AWS-Referenz Schemata finden Sie unter Regionen und Endpunkte in der.

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

**Warnung**  
Da SSL eine Verschlüsselung aller Daten erfordert und mehr TCP-Pakete benötigt, um einen Verbindungs-Handshake durchzuführen als nur TCP, kann die Deaktivierung von SSL eine kleine Leistungssteigerung bedeuten. Bei deaktiviertem SSL werden jedoch alle Daten unverschlüsselt über die Leitung übertragen. Bevor Sie SSL deaktivieren, müssen Sie die Auswirkungen auf die Sicherheit und die Möglichkeit des Abhörens über das Netzwerk sorgfältig abwägen.

## Was tue ich bei einem „Parse-Fehler“?
<a name="what-do-i-do-about-a-parse-error"></a>

Die PHP-Engine gibt Parsing-Fehler aus, wenn sie auf Syntax stößt, die sie nicht versteht. Dies ist fast immer der Fall, wenn man versucht, Code auszuführen, der für eine andere Version von PHP geschrieben wurde.

Wenn Sie auf einen Parsing-Fehler stoßen, überprüfen Sie Ihr System und stellen Sie sicher, dass es die [Anforderungen und Empfehlungen des SDK für](getting-started_requirements.md) Version 3 erfüllt. AWS SDK für PHP 

## Warum dekomprimiert der Amazon S3 S3-Client gezippte Dateien?
<a name="why-is-the-s3-client-decompressing-gzipped-files"></a>

Einige HTTP-Handler, einschließlich des standardmäßigen Guzzle 6 HTTP-Handlers, vergrößern standardmäßig komprimierte Antwortrümpfe. Sie können dieses Verhalten überschreiben, indem Sie den [decode\$1content](guide_configuration.md#http-decode-content) HTTP-Option auf `false` setzen. Aus Gründen der Abwärtskompatibilität kann diese Voreinstellung nicht geändert werden, wir empfehlen jedoch, die Inhaltsdekodierung auf S3-Client-Ebene zu deaktivieren.

Unter [decode\$1content](guide_configuration.md#http-decode-content) finden Sie ein Beispiel dafür, wie Sie automatische Inhaltsdekodierung deaktivieren können.

## Wie deaktiviere ich Body-Signing in Amazon S3?
<a name="how-do-i-disable-body-signing-in-s3"></a>

Sie können die Rumpfsignatur deaktivieren, indem Sie den `ContentSHA256`-Parameter im Befehlsobjekt auf `Aws\Signature\S3SignatureV4::UNSIGNED_PAYLOAD` setzen. Dann AWS SDK für PHP wird es als Header 'x-amz-content-sha-256' und als Body-Prüfsumme in der kanonischen Anfrage verwendet.

```
$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);
```

## Wie wird das Wiederholungsschema in AWS SDK für PHP behandelt?
<a name="how-is-retry-scheme-handled-in-the-sdk-php"></a>

Der AWS SDK für PHP hat eine, die das Wiederholungsverhalten behandelt`RetryMiddleware`. In Bezug auf 5xx HTTP-Statuscodes für Serverfehler versucht das SDK Wiederholungen für 500, 502, 503 und 504.

Ablehnungs-Ausnahmen, wie beispielsweise `RequestLimitExceeded`, `Throttling`, `ProvisionedThroughputExceededException`, `ThrottlingException`, `RequestThrottled` und `BandwidthLimitExceeded`, werden ebenfalls mit Wiederholungen verarbeitet.

Das integriert AWS SDK für PHP auch eine exponentielle Verzögerung mit einem Backoff- und Jitter-Algorithmus in das Wiederholungsschema. Darüber hinaus ist das standardmäßige Wiederholungsverhalten wie `3` für alle Services konfiguriert, mit Ausnahme von Amazon DynamoDB. `10`

## Wie verarbeite ich Ausnahmen mit Fehlercodes?
<a name="how-do-i-handle-exceptions-with-error-codes"></a>

Neben den AWS SDK für PHP benutzerdefinierten `Exception` Klassen hat jeder AWS Service-Client seine eigene Ausnahmeklasse, die von erbt. [AwsExceptionAwsException](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.Exception.AwsException.html) Sie können spezifischere Fehlerarten festlegen, die mit den API-spezifischen Fehlern abgefangen werden sollen, die im `Errors`-Abschnitt der einzelnen Methoden aufgelistet sind.

Informationen zum Fehlercode sind mit [getAwsErrorCode ()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.Exception.AwsException.html#_getAwsErrorCode) von verfügbar. `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;
    }
}
```