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.
Konfiguration für AWS SDK for PHP Version 3
Client-Konstruktor-Optionen können in einem Client-Konstruktor bereitgestellt oder der Aws\Sdk
Klasse zur Verfügung gestellt werden. Die Anzahl der Optionen, die einem bestimmten Clienttyp zur Verfügung stehen, kann variieren, je nachdem, welchen Client Sie anlegen. Diese benutzerdefinierten Client-Konfigurationsoptionen sind in der API-Dokumentation für jeden Client beschrieben.
Beachten Sie, dass einige Konfigurationsoptionen Standardwerte basierend auf Umgebungsvariablen oder einer AWS Konfigurationsdatei überprüfen und verwenden. Standardmäßig befindet sich die zu überprüfende Konfigurationsdatei .aws/config
in Ihrem Stammverzeichnis, in der Regel ~/.aws/config
. Sie können jedoch die Umgebungsvariable AWS_CONFIG_FILE
verwenden, um den Standardspeicherort der Konfigurationsdatei festzulegen. Dies kann beispielsweise nützlich sein, wenn Sie den Dateizugriff auf bestimmte Verzeichnisse mit einschränkenopen_basedir
.
Weitere Informationen zum Speicherort und zur Formatierung der freigegebenen - AWS config
und -credentials
Dateien finden Sie unter Konfiguration im AWS Referenzhandbuch für SDKs und Tools.
Weitere Informationen zu allen globalen Konfigurationseinstellungen, die Sie in den AWS Konfigurationsdateien oder als Umgebungsvariablen festlegen können, finden Sie unter Referenz zu Konfigurations- und Authentifizierungseinstellungen im AWS Referenzhandbuch zu -SDKs und Tools.
Konfigurationsoptionen
Das folgende Beispiel zeigt, wie Optionen an einen Amazon S3-Client-Konstruktor übergeben werden.
use Aws\S3\S3Client; $options = [ 'region' => 'us-west-2', 'version' => '2006-03-01', 'signature_version' => 'v4' ]; $s3Client = new S3Client($options);
Weitere Informationen zum Erstellen von Clients finden Sie im grundlegenden Benutzerhandbuch.
api_provider
- Typ
-
callable
Eine aufrufbare PHP-Funktion, die ein Typ-, Service- und Versionsargument entgegennimmt und ein Array mit entsprechenden Konfigurationsdaten zurückgibt. Der Wert für den Typ kann api
, waiter
oder paginator
sein.
Standardmäßig verwendet das SDK eine Instance vonAws\Api\FileSystemApiProvider
, die Dateien aus dem src/data
-Ordner der SDK-API lädt.
Anmeldedaten
- Typ
-
array|Aws\CacheInterface|Aws\Credentials\CredentialsInterface|bool|callable
Übergeben Sie ein Aws\Credentials\CredentialsInterface
-Objekt, um eine spezifische Anmeldeinformationen-Instance zu verwenden. Im Folgenden wird angegeben, dass der IAM-Identity-Center-Anmeldeinformationsanbieter verwendet werden soll. Dieser Anbieter wird auch als SSO-Anmeldeinformationsanbieter bezeichnet.
$credentials = Aws\Credentials\CredentialProvider::sso('profile default'); $s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'credentials' => $credentials ]);
Wenn Sie ein benanntes Profil verwenden, ersetzen Sie den Namen Ihres Profils durch „default
“ im vorherigen Beispiel. Weitere Informationen zum Einrichten benannter Profile finden Sie unter Freigegebene - config
und -credentials
Dateien im Referenzhandbuch für -SDKs und Tools. AWS SDKs
Wenn Sie keinen Anbieter von Anmeldeinformationen angeben und sich auf die Kette der Anbieter von Anmeldeinformationen verlassen, ist die Fehlermeldung, die sich aus einer fehlgeschlagenen Authentifizierung ergibt, in der Regel generisch. Es wird vom letzten Anbieter in der Liste der Quellen generiert, die auf gültige Anmeldeinformationen überprüft werden. Dies ist möglicherweise nicht der Anbieter, den Sie verwenden möchten. Wenn Sie angeben, welcher Anbieter von Anmeldeinformationen verwendet werden soll, ist jede resultierende Fehlermeldung hilfreicher und relevanter, da sie nur von diesem Anbieter stammt. Weitere Informationen zur Kette von Quellen, die auf Anmeldeinformationen überprüft wurden, finden Sie unter Kette von Anmeldeinformationsanbietern im AWS Referenzhandbuch zu -SDKs und Tools.
Übergeben Sie false
, um keine Anmeldeinformationen zu verwenden und Anfragen nicht zu signieren.
$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'credentials' => false ]);
Übergeben Sie eine aufrufbare Anmeldeinformationsanbieter-Funktion, um Anmeldeinformationen unter Verwendung einer Funktion zu erstellen.
use Aws\Credentials\CredentialProvider; // Only load credentials from environment variables $provider = CredentialProvider::env(); $s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'credentials' => $provider ]);
Übergeben Sie in einer Instance von Aws\CacheInterface
zwischengespeicherte Anmeldeinformationen, um die Werte von der Standard-Anbieterkette über mehrere Prozesse zwischenzuspeichern.
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 ]);
Weitere Informationen zum Bereitstellen von Anmeldeinformationen für einen Client finden Sie im Handbuch Anmeldeinformationen für Version AWS SDK for PHP 3.
Anmerkung
Anmeldeinformationen werden langsam geladen und geprüft, wenn sie verwendet werden.
debug
- Typ
-
bool|array
Gibt Debugging-Informationen zu jeder Übertragung aus. Debugging-Informationen enthalten Informationen zu jeder Statusänderung einer Transaktion, wie sie erstellt und gesendet wird. Außerdem sind in der Debugging-Ausgabe Informationen zum jeweiligen HTTP-Handler enthalten, der von einem Client verwendet wird (z. B. debug cURL-Ausgabe).
Auf true
setzen, um Debugging-Informationen anzeigen, wenn Anforderungen gesendet werden.
$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'debug' => true ]); // Perform an operation to see the debug output $s3->listBuckets();
Alternativ können Sie eine assoziatives Array mit den folgenden Schlüsseln bereitstellen.
- logfn (callable)
-
Funktion, die mit Protokolleinträgen aufgerufen wird. Standardmäßig wird die
echo
-Funktion von PHP verwendet. - stream_size (int)
-
Wenn die Größe eines Datenstroms größer als diese Zahl ist, werden die Stream-Daten nicht protokolliert. Auf
0
setzen, um nicht alle Stream-Daten zu protokollieren. - scrub_auth (bool)
-
Setzen Sie den Wert auf
false
, um das Scrubbing von Authentifizierungsdaten aus den protokollierten Nachrichten zu deaktivieren (d. h. Ihre AWS Zugriffsschlüssel-ID und Signatur werden an den übergebenlogfn
). - http (bool)
-
Auf
false
setzen, um die „Debug“-Funktion von HTTP-Handlern auf niedrigerer Ebene zu deaktivieren (z. B. verbose cURL-Ausgabe). - auth_headers (array)
-
Auf eine Schlüssel-Wert-Zuweisung von Headern setzen, die Sie ersetzten wollen, abgebildet auf den Wert, durch den Sie sie ersetzen möchten. Diese Werte werden nicht verwendet, es sei denn
scrub_auth
ist auftrue
gesetzt. - auth_strings (array)
-
Auf eine Schlüssel-Wert-Zuordnung regulärer Ausdrücke setzen, um eine Abbildung auf ihre Ersatzwerte vorzunehmen. Diese Werte werden vom Authentifizierungsdaten-Scrubber verwendet, wenn
scrub_auth
auftrue
gesetzt ist.
$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();
Anmerkung
Diese Option gibt auch die zugrunde liegenden HTTP-Handler-Informationen aus, die von der http
Debug-Option erzeugt werden. Die Debugging-Ausgabe ist extrem hilfreich beim Diagnostizieren von Problemen in AWS SDK for PHP. Bitte geben Sie die Debugging-Ausgabe für einen isolierten Fehlerfall an, wenn Sie Tickets für das SDK eröffnen.
stats
- Typ
-
bool|array
Bindet Übertragungsstatistiken an Fehler und Ergebnisse, die von SDK-Operationen zurückgegeben wurden.
Auf true
setzen, um Übertragungsstatistiken für gesendete Anforderungen zu erfassen.
$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'stats' => true ]); // Perform an operation $result = $s3->listBuckets(); // Inspect the stats $stats = $result['@metadata']['transferStats'];
Alternativ können Sie eine assoziatives Array mit den folgenden Schlüsseln bereitstellen.
- retries (bool)
-
Auf
true
setzen, um Berichte zu versuchten Wiederholungen zu aktivieren. Wiederholungsstatistiken werden standardmäßig erfasst und zurückgegeben. - http (bool)
-
Legen Sie den Wert auf fest
true
, um das Erfassen von Statistiken von HTTP-Adaptern auf niedrigerer Ebene zu aktivieren (z. B. Werte, die in zurückgegeben werden GuzzleHttpTransferStats). HTTP-Handler müssen eine __on_transfer_stats-Option unterstützen, damit dies eine Wirkung zeigt. HTTP-Statistiken werden als ein indiziertes Array assoziativer Arrays zurückgegeben; jedes assoziative Array enthält die Übertragungsstatistiken, die der HTTP-Handler des Clients für eine Anfrage zurückgibt. Standardmäßig deaktiviert.Falls eine Anforderung wiederholt wurde, werden die Übertragungsstatistiken für jede Anforderung zurückgegeben, wobei
$result['@metadata']['transferStats']['http'][0]
die Statistiken für die erste Anforderung,$result['@metadata']['transferStats']['http'][1]
die Statistiken für die zweite Anforderung und so weiter enthält. - timer (bool)
-
Auf
true
setzen, um einen Befehlstimer zu aktivieren, der die gesamte für eine Operation aufgewendete Zeit in Sekunden anzeigt. Standardmäßig deaktiviert.
$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'];
Endpunkt
- Typ
-
string
Die vollständige URI des Webservice. Dies ist für Services erforderlich, z. B. AWS Elemental MediaConvert , die kontospezifische Endpunkte verwenden. Für diese Services fordern Sie diesen Endpunkt mit der -describeEndpoints
Methode an.
Dies ist nur erforderlich, wenn eine Verbindung zu einem benutzerdefinierten Endpunkt hergestellt wird (z. B. eine lokale Version von Amazon S3 oder Amazon DynamoDB Local ).
Hier ist ein Beispiel für die Verbindung mit Amazon DynamoDB Local:
$client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-east-1', 'endpoint' => 'http://localhost:8000' ]);
Eine Liste der verfügbaren AWS Regionen und Endpunkte finden Sie unter AWS Regionen und Endpunkte.
endpoint_provider
- Typ
-
Aws\EndpointV2\EndpointProviderV2|callable
Eine optionale Instance von EndpointProviderV2 oder PHP, die einen Hash mit Optionen akzeptiert, einschließlich eines „Service“- und „Region“-Schlüssels. Sie gibt NULL
oder einen Hash für Endpunktdaten zurück, von denen der „Endpunktschlüssel“ benötigt wird.
Hier folgt ein Beispiel dafür, wie ein minimaler Endpunktanbieter eingerichtet wird.
$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_discovery
- Typ
-
array|Aws\CacheInterface|Aws\EndpointDiscovery\ConfigurationInterface|callable
Die Endpunkterkennung identifiziert den korrekten Endpunkt für Service-APIs, die die Endpunkterkennung unterstützen, und stellt eine Verbindung damit her. Aktivieren Sie während der Client-Erstellung endpoint_discovery
für Services, die die Endpunkterkennung zwar unterstützen, aber nicht erfordern. Wenn ein Service die Endpunkterkennung nicht unterstützt, wird diese Konfiguration ignoriert.
Aws\EndpointDiscovery\ConfigurationInterface
Ein optionaler Konfigurationsanbieter, der automatische Verbindungsherstellung zum entsprechenden Endpunkt einer Service-API für Operationen ermöglicht, die der Service bestimmt.
Das Objekt Aws\EndpointDiscovery\Configuration
akzeptiert zwei Optionen, darunter ein Boolescher Wert („enabled“), der angibt, ob die Endpunkterkennung aktiviert ist, und eine Ganzzahl („cache_limit“), die die maximale Anzahl von Schlüsseln im Endpunkt-Cache angibt.
Für jeden erstellten Client übergeben Sie ein Objekt Aws\EndpointDiscovery\Configuration
, um eine bestimmte Konfiguration für die Endpunkterstellung zu nutzen.
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, ]);
Übergeben Sie eine Instance von Aws\CacheInterface
, um die Werte von der Endpunkterkennung über mehrere Prozesse im Cache zu speichern.
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), ]);
Übergeben Sie der Endpunkterkennung ein Array.
use Aws\S3\S3Client; $s3 = new S3Client([ 'region' => 'us-west-2', 'endpoint_discovery' => [ 'enabled' => true, 'cache_limit' => 1000 ], ]);
handler
- Typ
-
callable
Ein Handler, der ein Befehlsobjekt und ein Anfrageobjekt akzeptiert und ein Versprechen zurückgibt (GuzzleHttp\Promise\PromiseInterface
), das mit einem -Objekt erfüllt oder mit einer Aws\ResultInterface
abgelehnt wird.Aws\Exception\AwsException
Ein Handler akzeptiert keinen weiteren Handler, da er ein Terminal ist und einen Befehl ausführen soll. Wenn kein Handler bereitgestellt wird, wird eine Standard-Guzzle-Handler verwendet.
Du kannst den Aws\MockHandler
benutzen, um modellhafte Ergebnisse zurückzugeben oder modellhafte Ausnahmen aufzuwerfen. Sie stellen Ergebnisse oder Ausnahmen in die Warteschlange und die MockHandler wird sie in FIFO-Reihenfolge in die Warteschlange stellen.
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
- Typ
-
array
Auf ein Array von HTTP-Optionen setzen, die auf vom SDK erstellte HTTP-Anforderungen und -Übertragungen angewendet werden.
Das SDK unterstützt die folgenden Konfigurationsoptionen:
cert
- Typ
-
string|array
Geben Sie das PEM-formatierte Client-seitige Zertifikat an.
-
Als Zeichenfolge für den Pfad nur zur Zertifikatdatei festlegen.
use Aws\S3\S3Client; $client = new S3Client([ 'region' => 'us-west-2', 'http' => ['cert' => '/path/to/cert.pem'] ]);
-
Legen Sie dies als Array fest, das Pfad und Passwort enthält.
use Aws\S3\S3Client; $client = new S3Client([ 'region' => 'us-west-2', 'http' => [ 'cert' => ['/path/to/cert.pem', 'password'] ] ]);
connect_timeout
Ein Fließkommawert, der die Anzahl der Sekunden angibt, die man warten muss, während man versucht, eine Verbindung zu einem Server herzustellen. Verwenden Sie 0
für unbestimmtes Warten (das Standardverhalten).
use Aws\DynamoDb\DynamoDbClient; // Timeout after attempting to connect for 5 seconds $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'connect_timeout' => 5 ] ]);
debug
- Typ
-
bool|resource
Weist den zugrundeliegenden HTTP-Handler an, Debugging-Informationen auszugeben. Die Debugging-Informationen von verschiedenen HTTP-Handlern variieren.
-
Übergeben Sie
true
, um Debugging-Ausgaben auf STDOUT zu schreiben. -
Übergeben Sie eine
resource
wie vonfopen
zurückgegeben, um Debugging-Ausgabe auf eine spezifische PHP-Stream-Ressource zu schreiben.
decode_content
- Typ
-
bool
Weist den zugrundeliegenden HTTP-Handler an, den Rumpf der komprimierten Antworten zu erweitern. Wenn dies nicht aktiviert ist, werden komprimierte Antwortrümpfe möglicherweise mit einem GuzzleHttp\Psr7\InflateStream
erweitert.
Anmerkung
Die Inhaltsdekodierung ist im Standard-HTTP-Handler des SDK standardmäßig aktiviert. Aus Gründen der Abwärtskompatibilität kann diese Voreinstellung nicht geändert werden. Wenn Sie komprimierte Dateien in Amazon S3 speichern, empfehlen wir, die Inhaltsdekodierung auf S3-Client-Ebene zu deaktivieren.
use Aws\S3\S3Client; use GuzzleHttp\Psr7\InflateStream; $client = new S3Client([ 'region' => 'us-west-2', 'http' => ['decode_content' => false], ]); $result = $client->getObject([ 'Bucket' => 'my-bucket', 'Key' => 'massize_gzipped_file.tgz' ]); $compressedBody = $result['Body']; // This content is still gzipped $inflatedBody = new InflateStream($result['Body']); // This is now readable
Verzögerung
- Typ
-
int
Die Anzahl der Millisekunden für die Verzögerung vor dem Senden der Anfrage. Dies wird oft verwendet, um eine Anfrage zu verzögern, bevor sie erneut versucht wird.
expect
- Typ
-
bool|string
Diese Option wird durch die zugrunde liegenden HTTP-Handler übergeben. Standardmäßig werden Kopfzeilen mit „Expect: 100 Continue“ festgelegt, wenn der Textteil der Anforderung 1 MB überschreitet. true
oder false
aktiviert oder deaktiviert die Kopfzeile auf allen Anforderungen. Wenn eine Ganzzahl verwendet wird, verwenden nur Anforderungen diese Kopfzeile, deren Textteil diese Einstellung überschreitet. Bei Verwendung als Ganzzahl wird die expect-Kopfzeile mitgesendet, wenn die Textgröße nicht bekannt ist.
Warnung
Die Deaktivierung der expect-Kopfzeile kann Fehler hervorrufen, z. B. kann es sein, dass der Service keine Authentifizierung mehr zurückgibt. Diese sollte mit Vorsicht konfiguriert werden.
progress
- Typ
-
callable
Definiert eine Funktion, die aufgerufen wird, wenn Übertragungsfortschritt gemacht wird. Die Funktion akzeptiert die folgenden Argumente:
-
Die Gesamtanzahl der Bytes, die voraussichtlich heruntergeladen werden.
-
Die Anzahl der Bytes, die bisher heruntergeladen wurden.
-
Die Gesamtanzahl der Bytes, die voraussichtlich hochgeladen werden.
-
Die Anzahl der Bytes, die bisher hochgeladen wurden.
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' => 'my-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
- Typ
-
string|array
Sie können über einen Proxy eine Verbindung zu einem -AWSService herstellen, indem Sie die proxy
Option verwenden.
-
Geben Sie einen Zeichenfolgenwert für die Verbindung zu einem Proxy für beliebige URIs an. Der Proxy-Zeichenfolgenwert kann ein Schema, einen Benutzernamen und ein Passwort enthalten. Beispiel:
"http://username:password@192.168.16.1:10"
-
Stellen Sie ein assoziatives Array mit Proxy-Einstellungen bereit, wobei der Schlüssel das Schema der URI ist, und der Wert der Proxy für die angegebene URI (d. h. Sie können verschiedene Proxys für „http“- und „https“-Endpunkte angeben).
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', ] ] ]);
Sie können die HTTP_PROXY
-Umgebungsvariable verwenden, sodass ein „http“-Protokoll-spezifischer Proxy konfiguriert wird, und die HTTPS_PROXY
-Umgebungsvariable, sodass ein „https“-spezifischer Proxy konfiguriert wird.
sink
- Typ
-
resource|string|Psr\Http\Message\StreamInterface
Die sink
-Option steuert, wohin die Antwortdaten einer Operation heruntergeladen werden.
-
Geben Sie eine
resource
wie vonfopen
zurückgegeben zum Herunterladen des Antwortrumpfs in einen PHP-Stream an. -
Geben Sie den Pfad zu einer Datei auf der Festplatte als
string
-Wert an, um den Antwortrumpf in eine bestimmte Datei auf der Festplatte herunterzuladen. -
Geben Sie ein
Psr\Http\Message\StreamInterface
an, um den Antwortrumpf in ein spezifisches PSR-Streamobjekt herunterzuladen.
Anmerkung
Das SDK lädt den Antwortrumpf standardmäßig in einen temporären PHP-Stream herunter. Das bedeutet, dass die Daten im Speicher bleiben, bis die Größe des Rumpfs 2 MB erreicht. Zu diesem Zeitpunkt werden die Daten in eine temporäre Datei auf der Festplatte geschrieben.
synchronous
- Typ
-
bool
Die synchronous
-Option informiert den zugrundeliegenden HTTP-Handler darüber, dass Sie das Ergebnis blockieren wollen.
stream
- Typ
-
bool
Auf true
setzen, um dem zugrundeliegenden HTTP-Handler mitzuteilen, dass Sie den Antwortrupf einer Antwort vom Webservice streamen möchten, anstatt alles im Voraus herunterzuladen. Diese Option basiert beispielsweise auf in der Amazon S3-Stream-Wrapper-Klasse, um sicherzustellen, dass die Daten gestreamt werden.
timeout
- Typ
-
float
Eine Fließkommazahl, die das Timeout der Anfrage in Sekunden beschreibt. Verwenden Sie 0
für unbestimmtes Warten (das Standardverhalten).
use Aws\DynamoDb\DynamoDbClient; // Timeout after 5 seconds $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'timeout' => 5 ] ]);
verify
- Typ
-
bool|string
Sie können das Peer-SSL/TLS-Zertifikatsverifikationsverhalten des SDK mit der Option verify
http
anpassen.
-
Auf
true
setzen, um die SSL/TLS-Peer-Zertifikatsverifizierung zu aktivieren und das vom Betriebssystem bereitgestellte Standard-CA-Bundle zu verwenden. -
Auf
false
setzen, um die Peer-Zertifikatsverifizierung zu deaktivieren. (Das ist nicht sicher!) -
Auf eine Zeichenfolge setzen, um den Pfad zu einem CA-Zertifikat-Bundle bereitzustellen, um die Verifizierung mit einem benutzerdefinierten CA-Bundle zu ermöglichen.
Wenn das CA-Bundle für Ihr System nicht gefunden werden kann und Sie einen Fehler erhalten, stellen Sie dem SDK den Pfad zu einem CA-Bundle bereit. Wenn Sie kein bestimmtes CA-Bundle benötigen, bietet Mozilla ein häufig verwendetes CA-Bundle an, das Sie hieropenssl.cafile
PHP .ini so einstellen, dass sie auf den Pfad zur Datei verweist, sodass Sie die verify
-Anfrageoption weglassen können. Weitere Informationen über SSL-Zertifikate finden Sie auf der cURL-Website
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_handler
- Typ
-
callable
Die http_handler
-Option wird für die Integration des SDK mit anderen HTTP-Clients verwendet. Eine http_handler
-Option ist eine Funktion, die ein Psr\Http\Message\RequestInterface
-Objekt akzeptiert, und ein Array mit http
-Optionen, die auf den Befehl angewendet werden, und die ein GuzzleHttp\Promise\PromiseInterface
-Objekt zurückgibt, das mit einem Psr\Http\Message\ResponseInterface
-Objekt erfüllt oder mit einem Array mit den folgenden Ausnahmedaten abgelehnt wird:
-
exception
– (\Exception
) die Ausnahme, die festgestellt wurde. -
response
– (Psr\Http\Message\ResponseInterface
) die (gegebenenfalls) erhaltene Antwort. -
connection_error
– (bool) gleichtrue
, um den Fehler als Verbindungsfehler zu kennzeichnen. Wenn dieser Wert auftrue
gesetzt wird, kann das SDK die Operation gegebenenfalls automatisch wiederholen.
Das SDK konvertiert automatisch den vorgegebenen http_handler
in eine normale handler
-Option, indem es den bereitgestellten http_handler
in ein Aws\WrappedHttpHandler
-Objekt kapselt.
Standardmäßig verwendet das SDK Guzzle als HTTP-Handler. Sie können hier einen anderen HTTP-Handler angeben oder einen Guzzle-Client mit eigenen benutzerdefinierten Optionen bereitstellen.
Festlegen der TLS-Version
Ein Anwendungsfall besteht darin, die von Guzzle verwendete TLS-Version mit Curl festzulegen, vorausgesetzt, dass Curl in Ihrer Umgebung installiert ist. Beachten Sie die Curl-Versionseinschränkungen
Sie können die TLS-Version festlegen, die für eine bestimmte Client-Operation verwendet wird, indem Sie die debug
-Client-Option auf „true“ setzen und die SSL-Verbindungsausgabe prüfen. Diese Zeile könnte etwa so aussehen: SSL connection using TLSv1.2
Beispiel für das Festlegen von TLS 1.2 mit 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 ]);
Anmerkung
Die http_handler
-Option ersetzt alle angegebenen handler
-Optionen.
Profil
- Typ
-
string
Die Option „Profil“ gibt an, welches Profil verwendet werden soll, wenn Anmeldeinformationen aus der AWS Anmeldeinformationsdatei in Ihrem HOME-Verzeichnis erstellt werden (in der Regel ~/.aws/credentials
). Diese Einstellung überschreibt die AWS_PROFILE
-Umgebungsvariable.
Anmerkung
Wenn Sie die Option „Profil“ angeben, wird die "credentials"
Option ignoriert und Einstellungen für Anmeldeinformationen in der AWS Konfigurationsdatei (in der Regel ~/.aws/config
) werden ignoriert.
// Use the "production" profile from your credentials file $ec2 = new Aws\Ec2\Ec2Client([ 'version' => '2014-10-01', 'region' => 'us-west-2', 'profile' => 'production' ]);
Weitere Informationen zum Konfigurieren von Anmeldeinformationen und zum .iniAWS SDK for PHP-Dateiformat finden Sie unter Anmeldeinformationen für Version 3.
Region
- Typ
-
string
- Erforderlich
-
true
AWS Region, mit der eine Verbindung hergestellt werden soll. Eine Liste der verfügbaren Regionen finden Sie in den Regionen AWS und Endpunkten.
// Set the Region to the EU (Frankfurt) Region $s3 = new Aws\S3\S3Client([ 'region' => 'eu-central-1', 'version' => '2006-03-01' ]);
retries
- Typ
-
int|array|Aws\CacheInterface|Aws\Retry\ConfigurationInterface|callable
- Standard
-
int(3)
Konfiguriert den Wiederholungsmodus und die maximal zulässige Anzahl von Wiederholungen für einen Client. Übergeben Sie 0
, um Wiederholungen zu deaktivieren.
Die drei Wiederholungsmodi sind:
-
legacy
– die standardmäßige Legacy-Implementierung von Wiederholungsversuchen -
standard
– fügt ein Wiederholungskontingentsystem hinzu, um Wiederholungen zu verhindern, die wahrscheinlich nicht erfolgreich sind -
adaptive
– baut auf dem Standardmodus auf und fügt eine clientseitige Ratenbegrenzung hinzu. Beachten Sie, dass dieser Modus als experimentell betrachtet wird.
Die Konfiguration für Wiederholungen besteht aus dem Modus und den maximal zulässigen Versuchen für die einzelnen Anforderungen. Die Konfiguration kann an mehreren verschiedenen Orten in der folgenden Rangfolge festgelegt werden.
Rangfolge
Die Rangfolge für die Wiederholungskonfiguration lautet wie folgt (1 überschreibt 2-3 usw.):
-
Client-Konfigurationsoption
-
Umgebungsvariablen
-
AWS Freigegebene Konfigurationsdatei
Umgebungsvariablen
-
AWS_RETRY_MODE
– festgelegt auflegacy
,standard
oderadaptive
-
AWS_MAX_ATTEMPTS
– festgelegt auf einen ganzzahligen Wert für die maximal zulässigen Versuche pro Anforderung
Schlüssel für Datei mit gemeinsam verwendeter Konfiguration
-
retry_mode
– festgelegt auflegacy
,standard
oderadaptive
-
max_attempts
– festgelegt auf einen ganzzahligen Wert für die maximal zulässigen Versuche pro Anforderung
Client-Konfiguration
Im folgenden Beispiel werden Wiederholungsversuche für den Amazon-DynamoDB-Client deaktiviert.
// Disable retries by setting "retries" to 0 $client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-west-2', 'retries' => 0 ]);
Im folgenden Beispiel wird ein ganzzahliger Wert übergeben, der standardmäßig den legacy
-Modus mit der übergebenen Anzahl von Wiederholungen aufweist
// Disable retries by setting "retries" to 0 $client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-west-2', 'retries' => 6 ]);
- Das Objekt
Aws\Retry\Configuration
akzeptiert zwei Parameter, den Wiederholungsmodus -
und einen ganze Wert für die maximal zulässigen Versuche pro Anforderung. In diesem Beispiel wird ein
Aws\Retry\Configuration
-Objekt für die Wiederholungskonfiguration übergeben.
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, ]);
In diesem Beispiel wird ein Array für die Wiederholungskonfiguration übergeben.
use Aws\S3\S3Client; $s3 = new S3Client([ 'region' => 'us-west-2', 'retries' => [ 'mode' => 'standard', 'max_attempts' => 7 ], ]);
In diesem Beispiel wird eine Instance von Aws\CacheInterface
übergeben, um die vom Standardanbieter für Wiederholungskonfigurationen zurückgegebenen Werte zwischenzuspeichern.
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
- Typ
-
string
- Standard
-
string(5) "https"
URI-Schema, das für die Verbindung verwendet werden soll. Das SDK verwendet standardmäßig „https“-Endpunkte (d. h., SSL/TLS-Verbindungen). Sie können versuchen, eine Verbindung zu einem Service über einen unverschlüsselten „http“-Endpunkt herzustellen, indem Sie scheme
auf „http“ setzen.
$s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'us-west-2', 'scheme' => 'http' ]);
Eine Liste der Endpunkte und ob ein Service das http
AWS Schema unterstützt, finden Sie in den Regionen und Endpunkten.
Service nicht zulässig
- Typ
-
string
- Erforderlich
-
true
Name des zu verwendenden Service. Dieser Wert wird standardmäßig bereitgestellt, wenn Sie einen vom SDK bereitgestellten Client verwenden (z. B. Aws\S3\S3Client
). Diese Option ist nützlich, wenn Sie einen Service testen, der noch nicht im SDK veröffentlicht wurde, aber auf der Festplatte verfügbar ist.
signature_provider
- Typ
-
callable
Eine aufrufbare , die einen Signaturversionsnamen (z. B. v4
), einen Servicenamen und eine AWS Region akzeptiert und ein Aws\Signature\SignatureInterface
Objekt zurückgibt oder NULL
wenn der Anbieter einen Aussteller für die angegebenen Parameter erstellen kann. Dieser Anbieter wird verwendet, um vom Client verwendete Signaturgeber zu erstellen.
Es gibt verschiedene Funktionen des SDK in der Aws\Signature\SignatureProvider
-Klasse, die genutzt werden können, um benutzerdefinierte Signaturanbieter zu erstellen.
signature_version
- Typ
-
string
Eine Zeichenfolge, die eine benutzerdefinierte Signaturversion darstellt, die für einen Service verwendet wird (z. B. v4
usw.). Die pro Operation verwendete Signaturversion KANN diese angeforderte Signaturversion bei Bedarf übersteuern.
Die folgenden Beispiele zeigen, wie Sie einen Amazon S3-Client für die Verwendung von Signature Version 4 konfigurieren:
// Set a preferred signature version $s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'us-west-2', 'signature_version' => 'v4' ]);
Anmerkung
Der von Ihrem Client verwendete signature_provider
MUSS die Möglichkeit bieten, die von Ihnen bereitgestellte signature_version
-Option zu erstellen. Der vom SDK verwendete standardmäßige signature_provider
kann Signaturobjekte für „v4“ und „anonyme“ Signaturversionen erstellen.
ua_append
- Typ
-
string|string[]
- Standard
-
[]
Eine Zeichenfolge oder ein Array von Zeichenfolgen, die der dem HTTP-Handler übergebenen Benutzeragenten-Zeichenfolge hinzugefügt werden.
use_aws_shared_config_files
- Typ
-
bool|array
- Standard
-
bool(true)
Legen Sie den Wert auf „false“ fest, um die Prüfung auf freigegebene Konfigurationsdateien in „~/.aws/config“ und „~/.aws/credentials“ zu deaktivieren. Dadurch wird die Umgebungsvariable AWS_CONFIG_FILE überschrieben.
validieren
- Typ
-
bool|array
- Standard
-
bool(true)
Auf false
setzen, um die clientseitige Parametervalidierung zu deaktivieren. Sie werden vielleicht feststellen, dass die Deaktivierung der Validierung die Leistung des Clients etwas verbessert, aber der Unterschied ist vernachlässigbar.
// Disable client-side validation $s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'eu-west-1', 'validate' => false ]);
Auf ein assoziatives Array von Validierungsoptionen setzen, um spezifische Validierungsbedingungen zu aktivieren:
-
required
– Validieren, ob die erforderlichen Parameter vorhanden sind (standardmäßig aktiviert). -
min
– Validieren der Mindestlänge eines Werts (standardmäßig aktiviert). -
max
– Validieren der maximalen Länge eines Werts. -
pattern
– Validieren, ob der Wert mit einem regulären Ausdruck übereinstimmt.
// Validate only that required values are present $s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'eu-west-1', 'validate' => ['required' => true] ]);
version
- Typ
-
string
- Erforderlich
-
false
Diese Option gibt die zu verwendende Version des Webservice an (z. B. 2006-03-01
).
Ab Version 3.277.10 des SDK ist die Option „Version“ nicht erforderlich. Wenn Sie die Option „Version“ nicht angeben, verwendet das SDK die neueste Version des Service-Clients.
Zwei Situationen erfordern einen „Versions“-Parameter, wenn Sie einen Service-Client erstellen.
-
Sie verwenden eine Version des PHP SDK vor 3.277.10.
-
Sie verwenden Version 3.277.10 oder höher und möchten eine andere Version als die „neueste“ für einen Service-Client verwenden.
Der folgende Codeausschnitt verwendet beispielsweise Version 3.279.7 des SDK, aber nicht die neueste Version für Ec2Client
.
$ec2Client = new \Aws\Ec2\Ec2Client([ 'version' => '2015-10-01', 'region' => 'us-west-2' ]);
Die Angabe einer Versionsbeschränkung stellt sicher, dass Ihr Code nicht durch eine Unterbrechung des Service beeinträchtigt wird.
Eine Liste der verfügbaren API-Versionen finden Sie auf den Seiten für die API-Dokumentation für jeden Client. Wenn Sie eine bestimmte API-Version nicht laden können, müssen Sie möglicherweise Ihre Kopie des SDK aktualisieren.