AWS S3 Laravel 이미지 파일 업로드 중 오류 발생
목적
구현 환경
품목
정보
OS
macOS Catalina(10.15.5)
하드웨어
MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)
프로세서
2GHz 쿼드 코어Intel Core i5
메모리
32GB 3733MHz LPDDR4
그래픽
Intel Iris Plus Graphics 1536 MB
품목
정보
비고
AWS EC2 인스턴스
AmazonLinux2
이 방법을 사용하여 이미지에서 인스턴스 만들기 → AWS EC2를 Mac에서 사용해 봅시다!
PHP
7.4.5
이 방법으로 설치 → AWS EC2 AmazonLinux2 PHP 설치
composer
1.10.7
이 방법으로 설치 → AWS EC2 AmazonLinux2 composer 설치
MySQL
8.0.20 for Linux on x86_64
이 방법으로 설치 → AWS EC2 AmazonLinux2 MySQL 사용 가능
문제까지의 경위
이미지 업로드시의 처리를 아래와 같이 수정하여 public 상태로 업로드할 수 있도록 했다.
수정 전
앱 이름 디렉토리/app/Http/Controllers/ImageController.php
Storage::disk('s3')->putFile('/test', $request->file('file'));
수정 후
앱 이름 디렉토리/app/Http/Controllers/ImageController.php
Storage::disk('s3')->putFile('/test', $request->file('file'), 'public');
문제
다음 오류가 발생합니다.
Error executing "PutObject" on "https://S3のバケットURL/test/8iPIwmDI2VX6qOZwUq9XCJSLPGxGox2kxpfcOAkT.png"; AWS HTTP error: Client error: `PUT https://S3のバケットURL/test/8iPIwmDI2VX6qOZwUq9XCJSLPGxGox2kxpfcOAkT.png` resulted in a `403 Forbidden` response: <?xml version="1.0" encoding="UTF-8"?> <Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>5D23B7 (truncated...) AccessDenied (client): Access Denied - <?xml version="1.0" encoding="UTF-8"?> <Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>5D23B7FF0F008DAE</RequestId><HostId>PETGLYLAydwTGLlN6wskfKQpjULz1bGIQqWZc12NaJvZfCN++WYmjIFJrVoA2V8LNUK+fQwwoJk=</HostId></Error>
브라우저에서의 에러 화면의 표시를 이하에 기재한다.
문제 해결까지의 경위
업로드할 버킷 이름을 클릭합니다.
액세스 권한을 클릭합니다.
공용 액세스에서 편집을 클릭합니다.
각 체크를 해제하고 [저장]을 클릭합니다.
참고문헌
Reference
이 문제에 관하여(AWS S3 Laravel 이미지 파일 업로드 중 오류 발생), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/miriwo/items/4b11d7829747bf04e73c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)