[php] PHP 라이브러리 S3 파일 업로드 시 중복 처리

웹 애플리케이션에서 AWS S3에 파일을 업로드하는 과정에서 중복 파일이 발생하는 것을 방지하는 방법에 대해 알아보겠습니다.

1. 파일 중복 확인

S3에 파일을 업로드하기 전에 업로드할 파일의 해시 값을 계산하여 이미 해당 파일이 S3에 존재하는지 확인합니다.

아래는 파일의 해시 값을 계산하는 PHP 코드입니다.

$file_path = 'path_to_your_file';
$hash = hash_file('md5', $file_path);

2. 중복 파일 처리

이미 파일이 존재하는 경우 덮어쓰기를 방지하기 위해 파일명에 유니크한 값을 추가하여 새로운 파일로 업로드할 수 있습니다.

아래는 파일명에 유니크한 값(timestamp)를 추가하는 PHP 코드입니다.

$timestamp = time();
$new_file_name = $timestamp . '_' . $file_name;

3. S3 라이브러리를 사용하여 파일 업로드

S3 SDK를 사용하여 중복 파일 확인 후 새로운 파일로 업로드합니다.

use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;

$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'your_region',
    'credentials' => [
        'key'    => 'your_key',
        'secret' => 'your_secret',
    ],
]);

$bucket = 'your_bucket';
$key = 'path/to/new_file_name';
$s3->putObject([
    'Bucket' => $bucket,
    'Key'    => $key,
    'Body'   => fopen($file_path, 'r'),
]);

이제 위의 절차를 통해 파일이 중복되는 것을 방지하고 AWS S3로 파일을 안전하게 업로드할 수 있습니다.

Reference

Note: 위의 코드는 실제 애플리케이션에 따라 보안 및 성능 요구 사항에 따라 수정될 수 있습니다.