[php] PHP 라이브러리 S3 파일 압축하여 업로드
이번에는 PHP를 사용하여 AWS S3에 파일을 업로드하기 전에 파일을 압축하는 방법에 대해 알아보겠습니다. 이를 통해 저장 공간을 절약하고 네트워크 대역폭을 효율적으로 사용할 수 있습니다.
1. 필요한 PHP 라이브러리 설치
먼저 AWS SDK for PHP를 사용하여 S3에 파일을 업로드할 것이므로, 해당 라이브러리를 설치해야 합니다. Composer를 사용하는 경우 아래 명령을 실행하여 필요한 라이브러리를 설치할 수 있습니다.
composer require aws/aws-sdk-php
2. 파일 압축 기능 추가
PHP에 내장된 ZipArchive
클래스를 사용하여 파일을 압축할 수 있습니다. 다음은 간단한 예제 코드입니다.
$zip = new ZipArchive;
$zipFileName = 'compressed.zip';
if ($zip->open($zipFileName, ZipArchive::OVERWRITE | ZipArchive::CREATE) === TRUE) {
$files = ['file1.txt', 'file2.txt', 'file3.txt']; // 압축할 파일 리스트
foreach ($files as $file) {
$zip->addFile($file);
}
$zip->close();
}
3. S3로 파일 업로드
S3Client
클래스를 사용하여 파일을 S3에 업로드할 수 있습니다. 다음은 간단한 예제 코드입니다.
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
// S3 연결 설정
$s3 = new S3Client([
'version' => 'latest',
'region' => 'your-region',
'credentials' => [
'key' => 'your-key',
'secret' => 'your-secret'
]
]);
// 압축 파일 S3에 업로드
try {
$result = $s3->putObject([
'Bucket' => 'your-bucket',
'Key' => 'path/to/compressed.zip',
'Body' => fopen($zipFileName, 'rb'),
'ACL' => 'public-read'
]);
echo "파일이 성공적으로 업로드되었습니다.";
} catch (AwsException $e) {
echo $e->getMessage();
}
위 예제 코드에서 ‘your-region’, ‘your-key’, ‘your-secret’, ‘your-bucket’와 같이 개별 AWS 계정 및 S3 버킷에 맞게 설정해야 합니다.
이제 PHP를 사용하여 파일을 압축하여 AWS S3에 업로드하는 방법에 대해 이해하셨을 것입니다. 이를 통해 파일 관리 및 저장 공간 활용을 최적화할 수 있습니다.