Realización de solicitudes de Servicio de AWS con la versión 3 de AWS SDK para PHP - AWS SDK para PHP

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Realización de solicitudes de Servicio de AWS con la versión 3 de AWS SDK para PHP

Información general del flujo de trabajo de solicitudes del SDK

El trabajo con la versión 3 de AWS SDK para PHP sigue un patrón uniforme en todos los Servicios de AWS. El flujo de trabajo básico consta de tres pasos principales:

  1. Crear un cliente de servicio: cree una instancia de un objeto Client para el Servicio de AWS que desee utilizar.

  2. Ejecutar operaciones: llame a los métodos en el cliente que correspondan a las operaciones de la API del servicio.

  3. Procesar los resultados: trabaje con el objeto Result similar a una matriz devuelto en caso de ejecución correcta o gestione cualquier excepción generada en caso de error.

En las secciones siguientes se explica cada uno de estos pasos en detalle, comenzando por cómo crear y configurar los clientes de servicio.

Creación de un cliente de servicio básico

Puede crear un cliente pasando una matriz asociativa de opciones a un constructor de clientes.

Importaciones

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;

Código de muestra

//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'.

Encontrará información sobre el parámetro opcional "versión" en el temaOpciones de configuración.

Tenga en cuenta que no hemos proporcionado credenciales de forma explícita al cliente. Esto se debe a que el SDK utiliza la cadena de proveedores de credenciales predeterminada para buscar la información de credenciales.

Todas las opciones de configuración generales del cliente se describen detalladamente en Opciones del constructor de clientes para la versión 3 de AWS SDK para PHP. La matriz de opciones proporcionada a un cliente puede variar en función del cliente que esté creando. Estas opciones de configuración de cliente personalizadas se describen en la documentación de la API de cada cliente.

Aunque el ejemplo anterior muestra la creación de clientes básicos, puede personalizar los clientes de servicio para satisfacer requisitos específicos. Para obtener información más detallada sobre cómo configurar clientes de servicio mediante código, consulte Configuración de clientes de servicio en el código para la versión 3 de AWS SDK para PHP. Si necesita configurar clientes de servicio mediante archivos de configuración externos o variables de entorno, consulte Configuración de clientes de servicio para la versión 3 de AWS SDK para PHP externamente.

Realizar solicitudes

Puede realizar solicitudes de servicio si llama al método del mismo nombre en un objeto de cliente. Por ejemplo, para realizar la operación PutObject de Amazon S3, llame al método Aws\S3\S3Client::putObject().

Importaciones

require 'vendor/autoload.php'; use Aws\S3\S3Client;

Código de muestra

// 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' => 'amzn-s3-demo-bucket', 'Key' => 'my-key', 'Body' => 'this is the body!' ]); // Download the contents of the object. $result = $s3Client->getObject([ 'Bucket' => 'amzn-s3-demo-bucket', 'Key' => 'my-key' ]); // Print the body of the result by indexing into the result object. echo $result['Body'];

Las operaciones disponibles para un cliente y la estructura de la entrada y la salida se definen en el tiempo de ejecución en función de un archivo de descripción del servicio. Al crear un cliente, si no proporciona un parámetro version (por ejemplo, “2006-03-01” o “último”) del modelo de servicio, el cliente utilizará de forma predeterminada la última versión. El SDK buscará el archivo de configuración correspondiente en función de la versión proporcionada.

Todos los métodos de operación del tipo putObject() aceptan un único argumento: una matriz asociativa que representa los parámetros de la operación. La estructura de esta matriz (y la estructura del objeto de resultado) se define para cada operación en la documentación de la API del SDK (por ejemplo, consulte la documentación de la API para la operación putObject).

Opciones del controlador HTTP

También puede ajustar la forma en que el controlador HTTP subyacente ejecuta la solicitud mediante el uso del parámetro @http especial. Las opciones que puede incluir en el parámetro @http son las mismas que puede establecer al crear instancias para el cliente con la opción de cliente "http".

// 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' ] ]);

Uso de objetos Result

Si se ejecuta una operación correctamente, se devuelve un objeto Aws\Result. En lugar de devolver los datos XML o JSON sin procesar de un servicio, el SDK fuerza que los datos de la respuesta aparezcan en una estructura de matriz asociativa. El SDK normaliza algunos aspectos de los datos en función de su conocimiento del servicio en concreto y la estructura de respuesta subyacente.

Puede obtener acceso a los datos del objeto AWS\Result como una matriz PHP asociativa.

Importaciones

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;

Código de muestra

// 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();

El contenido del objeto de resultado depende de la operación que se ha ejecutado y de la versión del servicio. La estructura del resultado de cada operación API se documenta en la documentación de la API de cada operación.

El SDK se integra con JMESPath, un DSL que se utiliza para buscar y manipular los datos JSON o, en nuestro caso, matrices PHP. El objeto de resultado contiene un método search() que puede utilizar para extraer datos del resultado de forma más declarativa.

Código de muestra

$s3 = $sdk->createS3(); $result = $s3->listBuckets();
$names = $result->search('Buckets[].Name');