메뉴
Amazon Simple Storage Service
개발자 안내서 (API Version 2006-03-01)

PHP용 AWS SDK를 사용한 키 나열

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

참고

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

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

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

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

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

객체 키 나열

1

Aws\S3\S3Client 클래스의 factory() 메서드를 사용하여 Amazon S3 클라이언트의 인스턴스를 만듭니다.

2

ListObjects 명령을 첫 번째 인수로, 지정된 버킷에서 반환되는 객체가 포함될 어레이를 두 번째 인수로 지정하여 상위 수준 Amazon S3 클라이언트 getIterator() 메서드를 실행합니다.

또는 지정된 버킷에서 반환되는 객체가 포함될 어레이와 함께 하위 수준의 Amazon S3 클라이언트 listObjects() 메서드를 실행할 수 있습니다.

3

반환된 객체의 목록에 포함된 각 객체에서 객체 키를 추출합니다.

다음 PHP 코드 예제는 버킷에 포함된 객체를 나열한 후 객체 키를 나열하는 방법을 보여줍니다.

Copy
use Aws\S3\S3Client; // Instantiate the client. $s3 = S3Client::factory(); $bucket = '*** Bucket Name ***'; // Use the high-level iterators (returns ALL of your objects). $objects = $s3->getIterator('ListObjects', array('Bucket' => $bucket)); echo "Keys retrieved!\n"; foreach ($objects as $object) { echo $object['Key'] . "\n"; } // Use the plain API (returns ONLY up to 1000 of your objects). $result = $s3->listObjects(array('Bucket' => $bucket)); echo "Keys retrieved!\n"; foreach ($result['Contents'] as $object) { echo $object['Key'] . "\n"; }

예 객체 키 나열

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

Copy
<?php // Include the AWS SDK using the Composer autoloader. require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\S3\Exception\S3Exception; $bucket = '*** Your Bucket Name ***'; // Instantiate the client. $s3 = S3Client::factory(); // Use the high-level iterators (returns ALL of your objects). try { $objects = $s3->getIterator('ListObjects', array( 'Bucket' => $bucket )); echo "Keys retrieved!\n"; foreach ($objects as $object) { echo $object['Key'] . "\n"; } } catch (S3Exception $e) { echo $e->getMessage() . "\n"; } // Use the plain API (returns ONLY up to 1000 of your objects). try { $result = $s3->listObjects(array('Bucket' => $bucket)); echo "Keys retrieved!\n"; foreach ($result['Contents'] as $object) { echo $object['Key'] . "\n"; } } catch (S3Exception $e) { echo $e->getMessage() . "\n"; }

관련 리소스

이 페이지에서: