본 수업은 PHP SDK를 이용해서 S3를 이용하는 방법에 대한 수업입니다.
선수학습
본 수업은 AWS SDK for PHP 수업을 먼저 들으셔야 합니다.
권한
본 수업을 진행하기 위해서는 사용자나 역할이 AmazonS3FullAccess 권한이 있어야 합니다.
API 사용법
파일 전송
s3_put.php
<?php
require 'vendor/autoload.php';
$param = Array('region'=>'ap-northeast-2', 'version'=>'2006-03-01');
$s3 = new Aws\S3\S3Client($param);
$s3->putObject(Array(
'ACL'=>'public-read',
'SourceFile'=>'sample.txt',
'Bucket'=>'codingeverybody2',
'Key'=>'sample.txt'
));
?>
파일 목록 가져오기
s3_list.php
<?php
require 'vendor/autoload.php';
$param = Array('region'=>'ap-northeast-2', 'version'=>'2006-03-01');
$s3 = new Aws\S3\S3Client($param);
$list = $s3->listObjects(Array('Bucket'=>'codingeverybody2'));
$listArray = $list->toArray();
foreach($listArray['Contents'] as $item){
print($item['Key']."\n");
}
?>
파일 다운로드
s3_get.php
<?php
require 'vendor/autoload.php';
$param = Array('region'=>'ap-northeast-2', 'version'=>'2006-03-01');
$s3 = new Aws\S3\S3Client($param);
$s3->getObject(Array(
'Bucket'=>'codingeverybody2',
'Key'=>'sample.txt',
'SaveAs'=>fopen('sample_saved.txt', 'w')
));
웹애플리케이션에서 S3 활용
업로드 폼
upload.html
<html>
<body>
<form enctype="multipart/form-data" action="./s3_upload.php" method="POST">
<input type="file" name="userfile">
<input type="submit">
</form>
</body>
</html>
s3로 파일 전송
s3_upload.php
<?php
require 'vendor/autoload.php';
$param = Array('region'=>'ap-northeast-2', 'version'=>'2006-03-01');
$s3 = new Aws\S3\S3Client($param);
$result = $s3->putObject(Array(
'ACL'=>'public-read',
'SourceFile'=>$_FILES['userfile']['tmp_name'],
'Bucket'=>'codingeverybody2',
'Key'=>$_FILES['userfile']['name'],
'ContentType'=>$_FILES['userfile']['type']
));
unlink($_FILES['userfile']['tmp_name']);
$resultArray = $result->toArray();
var_dump($resultArray['ObjectURL']);
?>
<html>
<body>
<img src="<?php print($resultArray['ObjectURL']);?>" style="width:100%">
</body>
</html>

