AWS PHP S3(오브젝트 스토리지) 다운로드 방법
아마존 AWS의 S3에서 다운로드 하는 프로그램 입니다.
테스트 했을때 문제 없이 잘 됩니다. 오브젝트 스토리지는 AWS에만 있는것은 아닙니다.
그리고 다른곳은 사용해 보지 않았지만 API가 모두들 같다고 하네요.
아래는 PHP 7.3에서 다운로드 방법 알아보기 위해서 이런저런 테스트겸
만들어 보았습니다.
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$param = Array('region'=>'ap-northeast-2', 'version'=>'2006-03-01', 'credentials' => array(
'key' => 'key',
'secret' => 'secret/secret',
));
$s3 = new Aws\S3\S3Client($param);
$aParms = Array();
$aParms['Bucket'] = $bucket;
$aParms['Key'] = 'sample2.txt';
$aParms['ResponseContentDisposition'] = 'attachment; filename=rename.txt';
$oResult = $s3->getSignedUrl($aParms);
$aResult = $oResult->toArray();
print_r($aResult);
// 아래 모두 잘 된다.
# 바로 저장하는 방식
$result = $s3->getObject(Array(
'Bucket'=>$bucket,
'Key'=>'sample2.txt',
'SaveAs'=>fopen('sample_saved.txt', 'w')
));
//print_r($result);
# 화면에 출력해 주는 방식. - 웹사이트에서 바로 다운로드 시켜줄때 사용 한다.
# - $result의 내용은 위 방식이나 아래나 다르지 않다. Body도 같이 들어 있음.
$result = $s3 ->getObject([
'Bucket' => $bucket,
'Key' => 'sample2.txt'
]);
echo $result['Body'];
//print_r($result);
Exit;