-
이미지 파일 저장소 s3로 이전하기프로그래밍/PHP 2021. 6. 12. 19:03728x90반응형
이미지 파일들 디렉토리 사이즈가 넘 커져서 s3로 이전을 하려고 한다.
버킷 생성하고 이미지 업로드까지 지금 진행중.
기존에 이미지를 저장하고 불러오는 코드들을 변경해야 해서 아래 링크 참조해서
일단 aws sdk zip 파일을 받아서 서버에 올려두었다.
docs.aws.amazon.com/sdk-for-php/v3/developer-guide/getting-started_installation.html
이제 서버 디렉토리에 있는 이미지들을 s3로 올려야한다.
/** * S3 버킷에 파일을 업로드합니다. * $file : 저장하는 파일 이름(local) * $key : S3 디렉토리 + 파일 이름 */ public function putImage($bucket, $file, $key) { try{ $options = [ 'Bucket' => $bucket, 'SourceFile' => $file, 'Key' => $key, 'ACL' => 'private', ]; return $this->s3Client->putObject($options); } catch (S3Exception $e) { throw $e->getMessage(); } }
putObject API 설명 링크
아래는 result 값의 syntax이다.
[
'BucketKeyEnabled' => true || false,
'ETag' => '<string>',
'Expiration' => '<string>',
'ObjectURL' => '<string>',
'RequestCharged' => 'requester',
'SSECustomerAlgorithm' => '<string>',
'SSECustomerKeyMD5' => '<string>',
'SSEKMSEncryptionContext' => '<string>',
'SSEKMSKeyId' => '<string>',
'ServerSideEncryption' => 'AES256|aws:kms',
'VersionId' => '<string>',
]이미지가 성공적으로 업로드되면 테이블에 해당 내용을 업데이트하기 위해
result에서 해당 내용을 찾아보니 @metadata 에서 statusCode 가 그 역할을 하는 것 같다.
statusCode의 전체 리스트를 찾고 싶었는데 에러코드 나열된 것만 찾았다 (링크)
뭐 보통 200이면 보통 OK를 의미하고
아래 effectiveUri도 정상적으로 생성된 것으로 봐서
statusCode가 200 인지만 체크하면 될 것 같다.
API 문서 : docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#putobject
docs.aws.amazon.com/ko_kr/sdk-for-php/v3/developer-guide/s3-examples.html
docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/delete-multiple-objects.html
docs.aws.amazon.com/sdk-for-php/v3/developer-guide/getting-started_installation.html
728x90반응형'프로그래밍 > PHP' 카테고리의 다른 글
php $_POST 에서 일부 변수 값만 전달 안되는 오류 (0) 2022.10.08 php에서 이미지 사이즈 줄이기 (0) 2021.06.12 csv 파일 생성하기 (0) 2021.04.20 [php] explode 사용법 (문자열을 문자열로 분리하기) (2) 2021.03.03 php 에러 기록하기 (0) 2021.03.03