[php] PHP 라이브러리 S3 파일 업로드 프로그레스 표시

AWS S3를 사용하여 파일을 업로드하는 웹 애플리케이션을 개발 중이고 업로드 프로그레스 바를 표시하고 싶다면, AWS SDK for PHPJavaScript를 활용하여 실시간으로 업로드 상태를 표시할 수 있습니다. 아래에서는 PHP 라이브러리를 활용하여 AWS S3 파일 업로드 시 프로그레스 바를 표시하는 방법을 설명하겠습니다.

1. AWS SDK for PHP 설치

먼저, AWS SDK for PHP를 설치해야 합니다. Composer를 사용하는 경우 터미널에서 다음 명령어를 실행합니다.

composer require aws/aws-sdk-php

2. AWS S3 파일 업로드

다음으로, AWS S3에 파일을 업로드하는 PHP 코드를 작성합니다. 아래 예제 코드에서는 putObject 메서드를 사용하여 파일을 업로드합니다.

use Aws\S3\S3Client;

$s3Client = new S3Client([
    'version' => 'latest',
    'region' => 'your-region',
    'credentials' => [
        'key' => 'your-access-key',
        'secret' => 'your-secret-key',
    ],
]);

$result = $s3Client->putObject([
    'Bucket' => 'your-bucket',
    'Key' => 'your-file-key',
    'SourceFile' => 'path/to/your-file',
]);

3. JavaScript를 활용한 프로그레스 바 표시

업로드 프로그레스를 표시하기 위해 JavaScript를 이용합니다. AWS SDK for JavaScript의 ManagedUpload 클래스를 사용하여 업로드 프로그레스 이벤트를 처리할 수 있습니다. 아래는 JavaScript를 사용하여 프로그레스 바를 표시하는 예시입니다.

var upload = new AWS.S3.ManagedUpload({
    params: {
        Bucket: 'your-bucket',
        Key: 'your-file-key',
        Body: file,
    }
});

upload.on('httpUploadProgress', function (progress) {
    var percent = (progress.loaded * 100) / progress.total;
    // 프로그레스 바 업데이트 및 표시
});

결론

AWS S3 파일 업로드 시 프로그레스 바를 표시하는 방법은 AWS SDK for PHP를 사용하여 파일을 업로드하고, JavaScript를 통해 업로드 프로그레스 이벤트를 처리하여 구현할 수 있습니다.

많은 웹 애플리케이션에서 파일 업로드 프로그레스 바가 중요한 요소이므로, 이러한 방법을 사용하여 사용자 경험을 향상시킬 수 있습니다.

참고 문헌