기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS SDK for PHP 버전 3을 사용하여 AWS 서비스 요청
SDK 요청 워크플로 개요
AWS SDK for PHP 버전 3으로 작업하는 것은 전체적으로 일관된 패턴을 따릅니다 AWS 서비스. 기본 워크플로에는 다음 세 가지 주요 단계가 포함됩니다.
-
서비스 클라이언트 생성 - 사용 AWS 서비스 하려는에 대한 클라이언트 객체를 시작합니다.
-
작업 실행 - 클라이언트에서 서비스 API의 작업에 해당하는 메서드를 호출합니다.
-
프로세스 결과 - 성공 시 반환된 배열과 같은 결과 객체로 작업하거나 실패 시 발생하는 예외를 처리합니다.
다음 섹션에서는 서비스 클라이언트를 생성하고 구성하는 방법부터 시작하여 이러한 각 단계를 자세히 설명합니다.
기본 서비스 클라이언트 생성
결합형 배열의 옵션을 클라이언트의 생성자에 전달하여 클라이언트를 만들 수 있습니다.
가져오기
require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;
샘플 코드
//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'.
선택적 ‘version’ 파라미터에 대한 정보는 구성 옵션 항목에서 확인할 수 있습니다.
보안 인증을 클라이언트에 명시적으로 제공하지 않았다는 점에 주의하세요. 이는 SDK가 기본 자격 증명 공급자 체인을 사용하여 자격 증명 정보를 찾기 때문입니다.
모든 일반 클라이언트 구성 옵션에 대해서는 AWS SDK for PHP 버전 3의 클라이언트 생성자 옵션에서 자세히 설명합니다. 클라이언트에 제공되는 옵션의 배열은 어떤 클라이언트를 생성하고 있는지에 따라 다를 수 있습니다. 이러한 사용자 지정 클라이언트 구성 옵션에 대해서는 각 클라이언트의 API 설명서에서 설명합니다.
위의 예제는 기본 클라이언트 생성을 보여주지만 특정 요구 사항을 충족하도록 서비스 클라이언트를 사용자 지정할 수 있습니다. 코드를 통한 서비스 클라이언트 구성에 대한 자세한 내용은 섹션을 참조하세요AWS SDK for PHP 버전 3용 코드로 서비스 클라이언트 구성. 외부 구성 파일 또는 환경 변수를 사용하여 서비스 클라이언트를 구성해야 하는 경우 섹션을 참조하세요AWS SDK for PHP 버전 3에 대한 서비스 클라이언트 외부 구성.
요청 만들기
클라이언트 객체에서 동일한 이름의 메서드를 호출하여 서비스 요청을 할 수 있습니다. 예를 들어 Amazon S3 PutObject 작업을 수행하려면 Aws\S3\S3Client::putObject()
메서드를 호출합니다.
가져오기
require 'vendor/autoload.php'; use Aws\S3\S3Client;
샘플 코드
// 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'];
클라이언트에 사용할 수 있는 작업과 입력 및 출력의 구조는 서비스 설명 파일을 기반으로 실행 시간에 정의됩니다. 클라이언트를 생성할 때 서비스 모델의 version
파라미터(예: “2006-03-01” 또는 “최신”)를 제공하지 않으면 클라이언트는 기본적으로 최신 버전으로 설정됩니다. SDK는 제공된 버전을 기반으로 해당 구성 파일을 찾습니다.
putObject()
와 같은 작업 메서드는 모두 작업의 파라미터를 나타내는 결합형 배열인 단일 인수를 받습니다. 이 배열의 구조(및 결과 객체의 구조)는 SDK의 API 설명서에서 각 작업에 대해 정의됩니다(예: putObject 작업에 대한 API 설명서 참조).
HTTP 핸들러 옵션
특정 @http
파라미터를 사용하여 기본 HTTP 핸들러가 요청을 실행하는 방법도 미세 조정할 수 있습니다. @http
파라미터에 포함시킬 수 있는 옵션은 “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' ] ]);
결과 객체 작업
성공적인 작업을 실행하면 Aws\Result
객체가 반환됩니다. 서비스의 원시 XML 또는 JSON 데이터를 반환하는 대신, SDK는 응답 데이터를 결합형 배열 구조로 강제 변환합니다. SDK는 특정 서비스 및 기본 응답 구조에 대한 지식을 기반으로 데이터의 일부 측면을 정규화합니다.
연결 PHP 배열과 같은 AWS\Result
객체의 데이터에 액세스할 수 있습니다.
가져오기
require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;
샘플 코드
// 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();
결과 객체의 콘텐츠는 실행되는 작업과 서비스의 버전에 따라 다릅니다. 각 API의 결과 구조는 각 작업에 대한 API 설명서에서 문서화됩니다.
SDK는 JSON 데이터 또는 우리의 경우 PHP 배열을 검색하고 조작하는 데 사용되는 DSLsearch()
메서드가 포함됩니다.
샘플 코드
$s3 = $sdk->createS3(); $result = $s3->listBuckets();
$names = $result->search('Buckets[].Name');