AWS S3의 모든 객체는 버킷에 저장되기 때문에 S3에 파일과 폴더를 업로드하려면, 먼저 객체가 저장될 버킷을 생성해야 한다.
또한 Node.js에서 @aws-sdk/client-s3 라이브러리로 AWS 버킷과 객체를 제어하기 위해서는 권한 설정이 필요하다.
[서비스] - [S3] 클릭 후 [버킷]에서 [버킷 만들기] 버튼 클릭
[버킷 만들기]에서 [버킷 이름] 입력 후 [AWS 리전]을 [아시아 태평양(서울) ap-northeast-2]로 설정
[모든 퍼블릭 액세스 차단] 체크 해제 후 아래 빨간 박스 체크하기
내가 만든 버킷 들어가서 [권한] - [버킷 정책] - [편집] 클릭
[정책]에 아래 내용 추가하고 "내가 만든 버킷명"에 버킷명 입력하기
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject", "s3:DeleteObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::내가 만든 버킷명/*" } ] }
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject", "s3:DeleteObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::내가 만든 버킷명/*" } ] }
이 프로젝트에서는 이미지 불러오기, 추가하기, 삭제하기 기능만을 사용하기 때문에 Action
에 s3:GetObject
, s3:DeleteObject
, s3:PutObject
만 추가했다. 만약 모든 Action
을 허용하고 싶으면 "s3:*"
을 추가하면 된다.
로컬 스토리지, 세션 스토리지, 쿠키의 차이점을 알기 쉽게 페이지 및 API를 따로 구현했다. 프론트엔드에서 fetch 요청 시 옵션으로 credentials: "include"를
2023-08-08퍼블릭화한 S3 버킷의 객체 URL은 https://[버킷명].s3.[버킷리전].awazonaws.com/[객체]로 되어있다. ex) https://doromo-example.s3
2023-07-27Node.js와 express로 백엔드를 구축했다. 백엔드에서 aws-sdk를 이용하여 버킷과 객체에 접근할 것이다. MY_AWS_ACCESS_KEY : IAM 설정에서 발급받은
2023-07-27Node.js는 @aws-sdk/client-s3 라이브러리를 이용하여 S3 버킷과 객체를 제어한다. 라이브러리를 사용하기 위해서는 일단 AWS S3에서 IAM 사용자를 만들어 액
2023-07-27# Contact : jyw966@naver.com
Copyright © doromo. All Rights Reserved.