메뉴
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 SDK 클래스를 사용하여 Amazon S3에 저장되어 있는 객체를 복사하는 방법을 보여줍니다.

객체 복사

1

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

2

객체를 복사하려면 Aws\S3\S3Client::copyObject() 메서드를 실행합니다. 원본 버킷, 원본 키 이름, 대상 버킷, 대상 키 이름 등의 정보를 제공해야 합니다.

다음 PHP 코드 예제는 copyObject() 메서드를 사용하여 Amazon S3에 저장되어 있는 객체를 복사하는 방법을 보여줍니다.

Copy
use Aws\S3\S3Client; $sourceBucket = '*** Your Source Bucket Name ***'; $sourceKeyname = '*** Your Source Object Key ***'; $targetBucket = '*** Your Target Bucket Name ***'; $targetKeyname = '*** Your Target Key Name ***'; // Instantiate the client. $s3 = S3Client::factory(); // Copy an object. $s3->copyObject(array( 'Bucket' => $targetBucket, 'Key' => $targetKeyname, 'CopySource' => "{$sourceBucket}/{$sourceKeyname}", ));

다음 작업은 PHP 클래스를 사용하여 Amazon S3 내에서 객체의 여러 복사본을 만드는 방법을 보여줍니다.

객체 복사

1

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

2

객체에 대해 여러 복사본을 만들려면 Guzzle\Service\Client 클래스에서 상속되는 Amazon S3 클라이언트의 getCommand() 메서드에 대한 일괄 호출을 수행합니다. 첫 번째 인수로 CopyObject 명령을, 두 번째 인수로 원본 버킷, 원본 키 이름, 대상 버킷, 대상 키 이름이 포함된 어레이를 제공합니다.

다음 PHP 코드 예제는 Amazon S3에 저장되어 있는 객체의 여러 복사본을 만드는 방법을 보여줍니다.

Copy
use Aws\S3\S3Client; $sourceBucket = '*** Your Source Bucket Name ***'; $sourceKeyname = '*** Your Source Object Key ***'; $targetBucket = '*** Your Target Bucket Name ***'; $targetKeyname = '*** Your Target Key Name ***'; // Instantiate the client. $s3 = S3Client::factory(); // Perform a batch of CopyObject operations. $batch = array(); for ($i = 1; $i <= 3; $i++) { $batch[] = $s3->getCommand('CopyObject', array( 'Bucket' => $targetBucket, 'Key' => "{targetKeyname}-{$i}", 'CopySource' => "{$sourceBucket}/{$sourceKeyname}", )); } try { $successful = $s3->execute($batch); $failed = array(); } catch (\Guzzle\Service\Exception\CommandTransferException $e) { $successful = $e->getSuccessfulCommands(); $failed = $e->getFailedCommands(); }

예 Amazon S3 내 객체 복사

다음 PHP 예제는 copyObject() 메서드를 사용하여 Amazon S3 내에서 단일 객체를 복사하고, getcommand() 메서드를 사용한 CopyObject 일괄 호출을 통해 객체의 여러 복사본을 만드는 과정을 보여줍니다.

Copy
<?php // Include the AWS SDK using the Composer autoloader. require 'vendor/autoload.php'; use Aws\S3\S3Client; $sourceBucket = '*** Your Source Bucket Name ***'; $sourceKeyname = '*** Your Source Object Key ***'; $targetBucket = '*** Your Target Bucket Name ***'; // Instantiate the client. $s3 = S3Client::factory(); // Copy an object. $s3->copyObject(array( 'Bucket' => $targetBucket, 'Key' => "{$sourceKeyname}-copy", 'CopySource' => "{$sourceBucket}/{$sourceKeyname}", )); // Perform a batch of CopyObject operations. $batch = array(); for ($i = 1; $i <= 3; $i++) { $batch[] = $s3->getCommand('CopyObject', array( 'Bucket' => $targetBucket, 'Key' => "{$sourceKeyname}-copy-{$i}", 'CopySource' => "{$sourceBucket}/{$sourceKeyname}", )); } try { $successful = $s3->execute($batch); $failed = array(); } catch (\Guzzle\Service\Exception\CommandTransferException $e) { $successful = $e->getSuccessfulCommands(); $failed = $e->getFailedCommands(); }

관련 리소스

이 페이지에서: