zip 파일을 다운로드 받아서 하는 방법도 있지만 aws sdk를 설치하여 사용하면 더 간편하게 사용할 수 있다
composer로 AWS SDK 추가
composer require aws/aws-sdk-php
PHP 스크립트에 자동 로드 추가
<?php
require_once '../vendor/autoload.php';
?>
Amazon S3에서 AWS SDK를 사용하여 객체를 업로드 샘플 코드
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$bucket = '*** Your Bucket Name ***';
$keyname = '*** Your Object Key ***';
$s3 = new S3Client([
'version' => 'latest',
'region' => 'us-east-1'
]);
try {
// Upload data.
$result = $s3->putObject([
'Bucket' => $bucket,
'Key' => $keyname,
'Body' => 'Hello, world!',
'ACL' => 'public-read'
]);
// Print the URL to the object.
echo $result['ObjectURL'] . PHP_EOL;
} catch (S3Exception $e) {
echo $e->getMessage() . PHP_EOL;
}
실제 파일을 올리기 위해 사용한 코드
<?php
require_once '../vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$bucket = '*** Your Bucket Name ***';
$keyname = '*** Your Object Key ***';
$key = '***Your key***';
$secret = '*** Your secret key '***';
//파일 데이터
$fileData = $_FILES['file']['tmp_name'];
//$fileData = "업로드할 파일 주소";
$s3 = new S3Client(array(
'version' => 'latest',
'region' => 'us-east-1',
'http' => array('verify' => false),
'credentials' => array('key' => $key,
'secret' => $secret)
));
try {
// Upload data.
$result = $s3->putObject(array(
'Bucket' => $bucket,
'Key' => $keyname,
'Body' => file_get_contents($fileData)',
'ACL' => 'public-read'
));
} catch (S3Exception $e) {
echo $e->getMessage() . PHP_EOL;
}
?>
반응형
'기타 프로그램' 카테고리의 다른 글
nginx 에러로그 실시간 확인 하는 명령 (1) | 2024.01.25 |
---|---|
[PHP] pre-signed url, s3 객체 다운로드 url (1) | 2023.12.05 |
PHP trim(), preg_replace() 문자열 공백 제거 (0) | 2023.02.28 |
querydsl 문자열 더하기 (0) | 2022.10.05 |
IntelliJ 자동 정렬 단축기 (0) | 2022.09.26 |
댓글