PHP

AMAZON S3 PHP SDK 로 다운로드 연결하기

for2gles 2020. 4. 29. 20:10

credentials 액세스키와 시크릿키발급방법

AWS IAM에 접속해서 사용자 생성, 나같은경우는 S3 Read Only 퍼미션을 가진 사용자 생성 후 액세스키, 시크릿키 사용

 

----------------------------------------------------

 

$provider = CredentialProvider::defaultProvider(); // /usr/sbin/.aws/credentials 파일에 key 보관

//var_dump($provider); // 이걸로 credentials 파일 어디서 로드하는 지 파악했음.

$s3Client = new Aws\S3\S3Client([

'region' => 'ap-northeast-2',

'version' => '2006-03-01',

'credentials' => $provider

]);



$cmd = $s3Client->getCommand('GetObject',[

'Bucket' => 'jwentertainment',

'Key' => 'offline/2liter_process.jpg' // 파일명 세팅

//'Key' => 'ap-northeast-2:12774df1cc4580e98cde56d0dd97a092'

]);

 

//$keyLists = $s3Client->listObjects([

// 'Bucket' => 'jwentertainment'

//]);

//// $buckets = $s3Client->listBuckets();

//print_r($keyLists);

//exit;

//키 목록 보는 법

 

 

$request = $s3Client->createPresignedRequest($cmd, '+20 minutes');//이걸로 시간설정 가능

 

$presignedUrl = (string)$request->getUri();

 

$responseMassege = array(

'record'=> array(

'info' => array(

'result_code' => '200',

'result_message' => 'success'

),

'list' => $presignedUrl //여기 url로 다운로드 가능

)

);

//$this->Song_model->updateLog('JKM_301', $device_idx, 'Y');

// $this->response(json_encode($responseMassege), MY_Controller::HTTP_OK);

$this->response($responseMassege, MY_Controller::HTTP_OK);

 

참고사이트

https://lee-seul.github.io/other/2018/05/13/AWS-Credentials.html

 

AWS Credentials 설정

...

lee-seul.github.io

https://docs.aws.amazon.com/ko_kr/sdk-for-php/v3/developer-guide/guide_credentials.html