Realización de Servicio de AWS solicitudes mediante la AWS SDK para PHP versión 3 - 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 Servicio de AWS solicitudes mediante la AWS SDK para PHP versión 3

Resumen del flujo de trabajo de solicitudes del SDK

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

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

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

  3. Resultados del proceso: trabaje con el objeto Result similar a una matriz que se devuelve en caso de éxito o gestione cualquier excepción que se produzca en caso de error.

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

Crear 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 sobre las credenciales.

Todas las opciones de configuración generales del cliente se describen detalladamente en Opciones de constructor de clientes para la AWS SDK para PHP versión 3. 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.

Si bien en el ejemplo anterior se muestra la creación básica de clientes, puedes personalizar tus clientes de servicio para que cumplan requisitos específicos. Para obtener información más detallada sobre la configuración de los clientes de servicio mediante código, consulteConfiguración de clientes de servicio en código para la AWS SDK para PHP versión 3. Si necesita configurar los clientes de servicio mediante archivos de configuración externos o variables de entorno, consulteConfiguración externa de clientes de servicio para la AWS SDK para PHP versión 3.

Realizar solicitudes

Puede realizar solicitudes de servicio llamando al método del mismo nombre en un objeto de cliente. Por ejemplo, para realizar la PutObjectoperación Amazon S3, debe llamar al Aws\S3\S3Client::putObject() método.

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' => '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'];

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 version parámetro (por ejemplo, «2006-03-01» o «más reciente») 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.

Puedes acceder a los datos del AWS\Result objeto 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 está integrado con JMESPathun DSL que se utiliza para buscar y manipular datos JSON o, en nuestro caso, con 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');