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.
AWS-Service Anfragen mit der AWS SDK für PHP Version 3 stellen
Überblick über den Workflow für SDK-Anfragen
Die Arbeit mit AWS SDK für PHP Version 3 folgt in allen Bereichen einem einheitlichen Muster AWS-Services. Der grundlegende Arbeitsablauf umfasst drei Hauptschritte:
-
Einen Service-Client erstellen — Instanziieren Sie ein Client-Objekt für den Client, den AWS-Service Sie verwenden möchten.
-
Operationen ausführen — Rufen Sie Methoden auf dem Client auf, die Operationen in der API des Dienstes entsprechen.
-
Ergebnisse verarbeiten — Arbeiten Sie mit dem Array-ähnlichen Ergebnisobjekt, das bei Erfolg zurückgegeben wird, oder behandeln Sie jede Ausnahme, die bei einem Fehler ausgelöst wird.
In den folgenden Abschnitten wird jeder dieser Schritte detailliert beschrieben, beginnend mit der Erstellung und Konfiguration von Service-Clients.
Einen Basis-Serviceclient erstellen
Sie können einen Client erstellen, indem Sie dem Konstruktor eines Clients ein assoziatives Array von Optionen übergeben.
Importe
require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;
Beispiel-Code
//Create an S3Client $s3 = new Aws\S3\S3Client([ 'region' => 'us-east-2' // Since version 3.277.10 of the SDK, ]); // the 'version' parameter defaults to 'latest'.
Informationen zum optionalen Parameter „Version“ finden Sie im Thema Konfigurationsoptionen.
Beachten Sie, dass wir nicht explizit Anmeldeinformationen für den Client angegeben haben. Das liegt daran, dass das SDK die standardmäßige Anbieterkette für Anmeldeinformationen verwendet, um nach Anmeldeinformationen zu suchen.
Alle allgemeinen Client-Konfigurationsoptionen werden unter ausführlich beschrieben. Client-Konstruktor-Optionen für die AWS SDK für PHP Version 3 Die Anzahl der Optionen, die einem Client zur Verfügung gestellt werden, kann je nach Client, den Sie erstellen, variieren. Diese benutzerdefinierten Clientkonfigurationsoptionen sind in der API-Dokumentation für jeden Client beschrieben.
Das obige Beispiel zeigt zwar die grundlegende Client-Erstellung, Sie können Ihre Service-Clients jedoch an spezifische Anforderungen anpassen. Ausführlichere Informationen zur Konfiguration von Service-Clients mithilfe von Code finden Sie unterKonfiguration von Service-Clients im Code für die AWS SDK für PHP Version 3. Informationen zur Konfiguration von Service-Clients mithilfe externer Konfigurationsdateien oder Umgebungsvariablen finden Sie unterService-Clients für die AWS SDK für PHP Version 3 extern konfigurieren.
Senden von Anforderungen
Sie können Serviceanfragen stellen, indem Sie die gleichnamige Methode für ein Client-Objekt aufrufen. Um beispielsweise den Amazon S3 PutObjectS3-Vorgang auszuführen, rufen Sie die Aws\S3\S3Client::putObject()
Methode auf.
Importe
require 'vendor/autoload.php'; use Aws\S3\S3Client;
Beispiel-Code
// Use the us-east-2 region and latest version of each client. $sharedConfig = [ 'profile' => 'default', 'region' => 'us-east-2' ]; // Create an SDK class used to share configuration across clients. $sdk = new Aws\Sdk($sharedConfig); // Use an Aws\Sdk class to create the S3Client object. $s3Client = $sdk->createS3(); // Send a PutObject request and get the result object. $result = $s3Client->putObject([ 'Bucket' => 'my-bucket', 'Key' => 'my-key', 'Body' => 'this is the body!' ]); // Download the contents of the object. $result = $s3Client->getObject([ 'Bucket' => 'my-bucket', 'Key' => 'my-key' ]); // Print the body of the result by indexing into the result object. echo $result['Body'];
Operationen, die für einen Client verfügbar sind, und die Struktur der Eingabe und Ausgabe werden zur Laufzeit basierend auf einer Servicebeschreibungsdatei definiert. Wenn Sie beim Erstellen eines Clients keinen version
Parameter (z. B. „2006-03-01“ oder „latest“) des Servicemodells angeben, verwendet der Client standardmäßig die neueste Version. Das SDK findet die entsprechende Konfigurationsdatei basierend auf der bereitgestellten Version.
Operationsmethoden wie putObject()
akzeptieren alle ein einzelnes Argument, ein assoziatives Array, das die Parameter der Operation darstellt. Die Struktur dieses Arrays (und die Struktur des Ergebnisobjekts) wird für jede Operation in der API-Dokumentation des SDK definiert (siehe z. B. die API-Dokumentation für die putObject-Operation).
Optionen für den HTTP-Handler
Sie können auch genau festlegen, wie der zugrunde liegende HTTP-Handler die Anforderung ausführt, indem Sie den speziellen Parameter @http
verwenden. Die Optionen, die Sie in den Parameter @http
aufnehmen können, entsprechen denen, die Sie beim Initialisieren des Clients mit der Client-Option „http“ festlegen können.
// Send the request through a proxy $result = $s3Client->putObject([ 'Bucket' => 'amzn-s3-demo-bucket', 'Key' => 'my-key', 'Body' => 'this is the body!', '@http' => [ 'proxy' => 'http://192.168.16.1:10' ] ]);
Mit Ergebnisobjekten arbeiten
Ausführen einer erfolgreichen Operation gibt ein Aws\Result
Objekt zurück. Anstatt die XML- oder JSON-Rohdaten eines Service zurückzugeben, konvertiert das SDK die Antwortdaten in eine assoziative Array-Struktur. Es normalisiert einige Aspekte der Daten auf der Grundlage seiner Kenntnisse des spezifischen Services und der zugrunde liegenden Antwortstruktur.
Sie können auf Daten aus dem AWS\Result
Objekt wie auf ein assoziatives PHP-Array zugreifen.
Importe
require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;
Beispiel-Code
// Use the us-east-2 region and latest version of each client. $sharedConfig = [ 'profile' => 'default', 'region' => 'us-east-2', ]; // Create an SDK class used to share configuration across clients. $sdk = new Aws\Sdk($sharedConfig); // Use an Aws\Sdk class to create the S3Client object. $s3 = $sdk->createS3(); $result = $s3->listBuckets(); foreach ($result['Buckets'] as $bucket) { echo $bucket['Name'] . "\n"; } // Convert the result object to a PHP array $array = $result->toArray();
Der Inhalt des Ergebnisobjekts hängt von der ausgeführten Operation und der Version eines Service ab. Die Ergebnisstruktur jeder API-Operation ist in den API-Dokumenten für jede Operation dokumentiert.
Das SDK ist in eine DSLsearch()
-Methode, mit der Sie deklarativer Daten aus dem Ergebnis extrahieren können.
Beispiel-Code
$s3 = $sdk->createS3(); $result = $s3->listBuckets();
$names = $result->search('Buckets[].Name');