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

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

객체 복사

1

Aws\S3\S3Client 클래스 생성자를 사용하여 Amazon S3 클라이언트의 인스턴스를 만듭니다.

2

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

예 Amazon S3 내 객체 복사

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

<?php require 'vendor/autoload.php'; use Aws\S3\S3Client; $sourceBucket = '*** Your Source Bucket Name ***'; $sourceKeyname = '*** Your Source Object Key ***'; $targetBucket = '*** Your Target Bucket Name ***'; $s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-east-1' ]); // Copy an object. $s3->copyObject([ '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', [ 'Bucket' => $targetBucket, 'Key' => "{targetKeyname}-{$i}", 'CopySource' => "{$sourceBucket}/{$sourceKeyname}", ]); } try { $succeeded = $s3->execute($batch); $failed = array(); } catch (CommandTransferException $e) { $succeeded = $e->getSuccessfulCommands(); echo "Failed Commands:" . PHP_EOL; foreach ($e->getFailedCommands() as $failedCommand) { echo $e->getExceptionForFailedCommand($FailedCommand)->getMessage() . PHP_EOL; } }

관련 리소스

이 페이지에서: