Amazon Simple Storage Service
개발자 안내서 (API 버전 2006-03-01)

PHP용 AWS SDK를 사용한 키 나열

이 단원에서는 PHP용 AWS SDK 버전 3의 클래스를 사용하여 Amazon S3 버킷에 포함된 객체 키를 나열하는 방법을 설명합니다.

이미 PHP용 AWS SDK 사용 및 PHP 예제 실행의 지침에 따라 PHP용 AWS SDK가 올바르게 설치되어 있다고 가정합니다.

PHP용 AWS SDK를 사용하여 버킷에 포함된 객체 키를 나열하려면 먼저 버킷에 포함된 객체를 나열한 후 나열된 각 객체에서 키를 추출해야 합니다. 버킷의 객체를 나열할 때 하위 수준의 Aws\S3\S3Client::listObjects() 메서드 또는 상위 수준의 Aws\ResultPaginator 클래스를 사용할 수 있습니다.

하위 수준의 listObjects() 메서드는 기본 Amazon S3 REST API로 매핑됩니다. 각 listObjects() 메서드는 최대 1,000개의 객체가 포함된 페이지를 반환합니다. 버킷의 객체가 1,000개보다 많을 경우 응답은 잘려서 표시되며, 다음 1,000개의 객체 조합을 검색하려면 다시 listObjects() 요청을 전송해야 합니다.

상위 수준의 ListObjects 페이지네이터를 사용하면 좀 더 쉽게 버킷에 포함된 객체를 나열하는 작업을 수행할 수 있습니다. ListObjects 페이지네이터를 사용하여 객체를 나열하려면 ListObjects 명령을 첫 번째 인수로, 지정된 버킷에서 반환되는 객체가 포함될 배열을 두 번째 인수로 지정하여 Aws/AwsClientInterface 클래스에서 상속된 Amazon S3 클라이언트의 getPaginator() 메서드를 실행합니다. ListObjects 페이지네이터를 사용할 때 getPaginator() 메서드는 지정된 버킷에 포함된 모든 객체를 반환합니다. 이 경우에는 1,000개의 객체 한도가 없으므로 응답이 잘릴 것에 대해 염려하지 않아도 됩니다.

다음 작업은 PHP Amazon S3 클라이언트 메서드를 사용하여 버킷에 포함된 객체를 나열한 후 객체 키를 나열하는 방법을 보여줍니다.

예 객체 키 나열

다음 PHP 예제는 지정된 버킷에서 키를 나열하는 방법을 보여줍니다. 버킷의 객체를 나열한 후 목록의 각 객체에서 키를 추출하는 상위 수준의 getIterator() 메서드 사용 방법과 함께 버킷의 객체를 나열한 후 반환된 목록의 각 객체에서 키를 추출하는 하위 수준의 listObjects() 메서드 사용 방법도 보여줍니다. 이 가이드의 PHP 예제 실행에 대한 자세한 내용은 PHP 예제 실행 단원을 참조하십시오.

<?php require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\S3\Exception\S3Exception; $bucket = '*** Your Bucket Name ***'; // Instantiate the client. $s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-east-1' ]); // Use the high-level iterators (returns ALL of your objects). try { $objects = $s3->getPaginator('ListObjects', [ 'Bucket' => $bucket ]); echo "Keys retrieved!" . PHP_EOL; foreach ($objects as $object) { echo $object['Key'] . PHP_EOL; } } catch (S3Exception $e) { echo $e->getMessage() . PHP_EOL; } // Use the plain API (returns ONLY up to 1000 of your objects). try { $result = $s3->listObjects([ 'Bucket' => $bucket ]); echo "Keys retrieved!" . PHP_EOL; foreach ($result['Contents'] as $object) { echo $object['Key'] . PHP_EOL; } } catch (S3Exception $e) { echo $e->getMessage() . PHP_EOL; }

관련 리소스

이 페이지에서: