본문 바로가기
기타 프로그램

PHP AWS S3 파일 업로드 하기

by 고체물리학 2023. 8. 25.

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;
}
?>

 

반응형

댓글