* 현 예제는 그누보드에서 작성하였다.
* AWS 접속 후 [보안 자격 증명] 으로 이동하여 액세스 키를 생성해야한다.
* 생성한 버킷의 권한을 퍼블릭으로 설정해준다.
(버킷 정책 샘플)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::버킷명/*"
}
]
}
$cf =array();
$cf['AWS_KEY'] = '액세스 키 ID';
$cf['AWS_SECRET'] = '비밀 액세스 키';
$cf['aws_bucket'] = '버킷명';
$cf['s3Client'] = [
'version' => 'latest',
'region' => 'AWS 리전(ex: ap-northeast-2)',
'credentials' => array(
'key' => $cf['AWS_KEY'],
'secret' => $cf['AWS_SECRET'],
)
];
// 다운로드한 SDK 파일의 autoloader를 불러온다.
include_once(G5_PATH.'/aws/aws-autoloader.php');
// AWS S3에 파일 업로드할 때 필요한 클래스들을 불러온다.
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
use Aws\Credentials\CredentialProvider;
// 접속
$s3Client = new Aws\S3\S3Client($cf['s3Client']);
if($_FILES['l_filename_edu']['name']!=''){
// 파일을 첨부했을 때
$ext = substr($_FILES['l_filename_edu']['name'], strrpos($_FILES['l_filename_edu']['name'], '.') + 1);
$file_name = "edufile".$ca_idx1.$ca_idx2.date("YmdHis").'.'.$ext;
$s3_path = "media/lecture/edufile/" . $file_name; // 업로드할 위치와 파일명 입니다.
try{
$result = $s3Client->putObject([
'Bucket' => $cf['aws_bucket'],
'Key' => $s3_path,
'SourceFile' => $_FILES['l_filename_edu']['tmp_name'],
]);
if($result['@metadata']['statusCode']==200){
$l_filename_edu = $file_name;
$l_filename_edu_origin = $_FILES['l_filename_edu']['name'];
}
}catch (S3Exception $e){
var_dump($e);
echo "<br><br>";
exit();
}
}
'웹 개발 이야기 > php' 카테고리의 다른 글
[PHP] Excel data upload (0) | 2023.03.16 |
---|---|
[PHP] 현재 보고있는 화면 캡쳐 후, 다운로드 / 인쇄 (0) | 2023.03.16 |
[PHP] 스팸글 등록 방지를 위한 아주 간단한 방법 (0) | 2023.03.13 |
[PHP] calendar_basic (0) | 2023.03.09 |
[PHP] 인스타그램 피드 가져오기 (Rapid API 이용) (0) | 2023.03.09 |
댓글