Fazendo AWS service (Serviço da AWS) solicitações usando a AWS SDK para PHP versão 3 - AWS SDK para PHP

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Fazendo AWS service (Serviço da AWS) solicitações usando a AWS SDK para PHP versão 3

Visão geral do fluxo de trabalho de solicitação de SDK

Trabalhar com a AWS SDK para PHP versão 3 segue um padrão consistente em todos Serviços da AWS. O fluxo de trabalho básico envolve três etapas principais:

  1. Crie um cliente de serviço — Instancie um objeto Client para o AWS service (Serviço da AWS) que você deseja usar.

  2. Executar operações — Chame métodos no cliente que correspondam às operações na API do serviço.

  3. Resultados do processo — trabalhe com o objeto Result semelhante a uma matriz retornado em caso de sucesso ou processe qualquer exceção gerada em caso de falha.

As seções a seguir explicam cada uma dessas etapas em detalhes, começando com como criar e configurar clientes de serviço.

Criação de um cliente de serviço básico

Você pode criar um cliente passando uma matriz associativa de opções para um construtor do cliente.

Importações

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

Código de exemplo

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

Informações sobre o parâmetro opcional “versão” estão disponíveis no tópico de opções de configuração.

Observe que não fornecemos explicitamente credenciais ao cliente. Isso porque o SDK usa a cadeia de fornecedores de credenciais padrão para procurar informações de credenciais.

Todas as opções de configuração geral do cliente estão descritas em detalhes no Opções de construtor de clientes para a AWS SDK para PHP versão 3. A matriz de opções fornecidas a um cliente pode variar com base no cliente que você está criando. Essas opções de configuração personalizada de cliente são descritas na documentação da API para cada cliente.

Embora o exemplo acima mostre a criação básica de clientes, você pode personalizar seus clientes de serviço para atender a requisitos específicos. Para obter informações mais detalhadas sobre como configurar clientes de serviço por meio de código, consulteConfigurando clientes de serviço em código para a AWS SDK para PHP versão 3. Se você precisar configurar clientes de serviço usando arquivos de configuração externos ou variáveis de ambiente, consulteConfigurando clientes de serviço para a AWS SDK para PHP versão 3 externamente.

Fazer solicitações

Você pode fazer solicitações de serviço chamando o método com o mesmo nome em um objeto cliente. Por exemplo, para realizar a PutObjectoperação do Amazon S3, você chama o Aws\S3\S3Client::putObject() método.

Importações

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

Código de exemplo

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

As operações disponíveis para um cliente e a estrutura de entrada e saída são definidas em tempo de execução com base em um arquivo de descrição do serviço. Ao criar um cliente, se você não fornecer um version parâmetro (por exemplo, “2006-03-01” ou “mais recente”) do modelo de serviço, o cliente usará como padrão a versão mais recente. O SDK localiza o arquivo de configuração correspondente com base na versão fornecida.

Todos os métodos de operação, como o putObject(), aceitam um único argumento, uma matriz associativa que representa os parâmetros da operação. A estrutura dessa matriz (e a estrutura do objeto do resultado) é definida para cada operação na Documentação da API do SDK (por exemplo, consulte a documentação da API para a operação putObject).

Opções do manipulador HTTP

Você também pode ajustar como o manipulador HTTP subjacente executa a solicitação usando o parâmetro especial @http. As opções que podem ser incluídas no parâmetro @http são as mesmas que podem ser definidas ao instanciar o cliente com a opção 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' ] ]);

Trabalhar com objetos de resultados

A execução de uma operação bem-sucedida retorna um objeto Aws\Result. Em vez de retornar os dados brutos XML ou JSON de um serviço, o SDK força os dados da resposta em uma estrutura de matriz associativa. Ele normaliza alguns aspectos dos dados com base em seu conhecimento do serviço específico e da estrutura da resposta subjacente.

Você pode acessar dados do AWS\Result objeto como uma matriz PHP associativa.

Importações

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

Código de exemplo

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

O conteúdo do objeto do resultado depende da operação executada e da versão de um serviço. A estrutura do resultado de cada operação da API é documentada na documentação da API para cada operação.

O SDK é integrado com JMESPathuma DSL usada para pesquisar e manipular dados JSON ou, no nosso caso, matrizes PHP. O objeto do resultado contém um método search() que você pode usar para extrair dados de forma declarativa do resultado.

Código de exemplo

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