강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

박재호님의 프로필 이미지
박재호

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

S3 연결하기

S3 bucket과 pre-signedurl 질문

작성

·

144

0

안녕하세요 제로초님 S3 bucekt 서비스를 공부하면서 pre-signedurl을 알게되어 학습하면서 궁금한것이 생겨 질문드립니다. 

S3 bucket에 올라간 파일의 접근을 막기 위하여 pre-signedurl를 사용한다고 이해했습니다.
그리고 pre-signedurl을 서버에서 생성해서 클라이언트로 넘겨주면 설정된 제한 시간동안만 클라이언트에서 직접 S3으로 파일을 업로드하거나 이미지를 불러온다거나 하는 등의 작업도 할수있게되는데 여기서 궁금한것이
1. S3 스토리지에 파일들을 접근 못하게 하는것이 목적이면 처음부터 public 말고 priavte으로 설정하면 될거같은데  private으로 설정되있다면 back서버에서 S3 스토리지에서 이미지를 가져와서 클라이언트에게 넘겨줄때 back서버에서 S3 스토리지로 접근하는것도 막는건가요??  그게 아니라면 굳이 이미지를 불러올때마다 매번 서버에서 pre-signedurl을 생성하고 클라이언트에서 그 url로 이미지를 요청하는게 이해가 되지 않는데 이미지를 불러오는것일경우 pre-signedurl로 하나 private로 설정을하나 무슨차이가 있는지 궁금합니다. 

2. pre-signedurl을 사용하는 주된 이점은 서버를 거치지 않고  클라이언트에서 S3으로 바로 업로드하는 것일거같은데 다른 주된 이점이 있을까요??

3. pre-signedurl을 사용한다면 업로드만 pre-sigendurl로  클라이언트에서 직접 s3로 올리는 작업만하고  이미지를 불러오는것은 서버에서 s3접근해서 경로를 내려주는식으로 하는 방법은 안돼나요? pre-signedurl을 사용하면 이미지를 불러오든 업로드를하든 모두 pre-signedurl로 사용할수밖에없는지 궁금합니다 

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

아뇨 back서버는 aws credentials를 갖고 있어서 ec2에서 s3 접근허용을 해주면 접근이 됩니다. pre-signedurl은 저도 안 해봐서 모르겠습니다.

다만 설명을 읽어보건데 이미지 데이터를 서버를 안 거치고 올리는 것이 서버측의 부담이 상당히 덜어집니다. 또한 다운로드받을 때도 서버를 안 거치고 받을 수 있다면 서버의 부담이 줄어드니까 그 자체로는 이득이 있는 것 같습니다. 어차피 s3에 객체는 저장되는 거니까 업로드만 프리사인드, 다운로드는 서버 거쳐서도 할 수 있을 것 같은데요?

박재호님의 프로필 이미지
박재호

작성한 질문수

질문하기