AWS S3 사용 기본모듈(Ver.0.1) 정보
AWS S3 사용 기본모듈(Ver.0.1)첨부파일
본문
aws s3를 사용하여 상품등록과 배너이미지등을 등록할 목적으로 만들다가 필요하신분들이잇을것 같아서
샘플모듈을 업로드합니다.
목차
1. php composer 설치
2. composer 설치 확인
3. Bucket 생성
4. AWS= 보안자격증명 = 액세스키 생성
csv에 key와 secretkey 확인
5. 파일업로드(Form/ Ajax multipart)
6. 해당파일 확인 (cdn서비스등, 도메인 등록후)
전제조건
= 그누보드나 영카트는 대부분 웹호스팅을 사용하시지만 php composer 설치가 가능한 root권한이있어야
사용이 가능하다는걸 알게되었습니다.(웹호스팅에서도 가능한 방법이있으면 알려주세요)
PHP Composer 설치 ( 출처 : https://jjeongil.tistory.com/1343 )
01. Composer를 다운로드 및 설치하기 전에 먼저 패키지 인덱스를 업데이트하고 필요한 요구 사항을 설치합니다.
sudo apt update
sudo apt install wget php-cli php-zip unzip
02. 이제 php cli가 시스템에 설치되었으므로 다음을 사용하여 Composer 설치 프로그램을 다운로드할 수 있습니다.
php -r "copy('<https://getcomposer.org/installer>', 'composer-setup.php');"
03. 다음으로 스크립트 SHA-384 해시와 Composer Public Keys / Signatures 페이지에 있는 최신 설치 프로그램 해시를 비교하여 스크립트의 데이터 무결성을 확인해야 합니다.
다음 wget 명령을 사용하여 Composer의 Github 페이지에서 최신 Composer 설치 프로그램의 예상 서명을 다운로드하고 HASH라는 변수에 저장합니다.
HASH="$(wget -q -O - <https://composer.github.io/installer.sig>)"
이제 다음 명령을 실행하여 설치 스크립트가 손상되지 않았는지 확인합니다.
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
해시가 일치하면 다음 출력이 표시됩니다.
Installer verified
04. 다음 명령은 /usr/local/bin 디렉토리에 Composer를 설치합니다.
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
# All settings correct for using Composer# Downloading...## Composer (version 1.8.5) successfully installed to: /usr/local/bin/composer# Use it: php /usr/local/bin/composer
composer는 시스템 전체 명령으로 설치되며 모든 사용자가 사용할 수 있습니다.
05. 마지막 단계는 설치를 확인하는 것입니다.
root 디렉트에서 설치후 composer 명령어로 확인
Composer [Quick Way] 설치
다음 명령을 사용하여 Ubuntu 시스템에 Composer를 신속하게 설치할 수 있습니다.
01. PHP CLI 및 Zip을 설치합니다.
sudo apt update && sudo apt install wget php-cli php-zip unzip curl
02. curl로 Composer를 다운로드합니다.
curl -sS <https://getcomposer.org/installer> |php
03. Composer 파일을 /usr/local/bin 디렉토리로 이동합니다.
sudo mv composer.phar /usr/local/bin/composer
ROOT 디렉토리에서
==> 예제) /usr/share/nginx/html 에서 composer 실행
composer require aws/aws-sdk-php
composer require aws/aws-php-sns-message-validator
소스 코드 샘플
소스
<?php
require './vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
use Aws\S3\MultipartUploader;
use Aws\Exception\MultipartUploadException;
$s3Client = new S3Client([
'version' => 'latest',
'region' => 'ap-northeast-2', //서울 리젼
'credentials' => [
'key' => 'XXX',
'secret' => 'XXX'
]
]);
$bucket = ''; //버킷이름
$source = 'sample.mp4';
$uploadKey = uniqid('video_', true) . '.' . end(explode('.', $source));
$uploader = new MultipartUploader($s3Client, $source, [
'bucket' => $bucket,
'key' => $uploadKey,
]);
try {
$result = $uploader->upload();
echo "Upload complete: {$result['ObjectURL']}\n";
} catch (MultipartUploadException $e) {
echo $e->getMessage() . "\n";
}
?>
업로드이후에 해당 도메인(cdn.도메인/ 변환파일명) 으로 확인가능합니다.
Ver 0.2에서는 실제관리자와 도메인으로 업데이트 하겠습니다.
현재는 샘플 모듈만 만들어져있고 Form이나 ajax로 넘겨서 사용하시면될것 같습니다.
안되시는 분들은 댓글이나 쪽지주십시오 아는범위에서 확인후 조치해드리겠습니다.
문제가 되는 부분이있으면 말씀주시면 내리도록 하겠습니다.
php 버전은 7.4에서 테스트하였습니다.
7
댓글 전체
aws 계정만 생성해놓고 조금 살펴보다가 말았습니다.
나중에 aws사용하게되면 적용해보겠습니다.^^
개발컴에서 컴포저 설치해서 vendor폴더랑 오토로드
생성된거 그대로 업로드하면 문제될게 없습니다
카페24 노드호스팅에서 node_modules 폴더 전체 업로드 하는거랑 같습니다