카테고리 없음

React Native 파일 업로드 (AWS활용)

괴물공장 2019. 7. 28. 22:21

Server에서 파일 업로드 기능을 제공할때, 보안상의 이유로 서비스 서버에 직접 파일을 업로드하는것은 위험함으로

파일은 AWS에 업로드하고 이를 Link하는 형태로 제공한다. 

 

이를 위해 Multer S3를 사용해야 한다. 

 

우선 AWS 가입.

https://aws.amazon.com/

 

클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services

엔터프라이즈 변혁 AWS를 사용하여 뱅킹을 재창조하는 Capital One Capital One이 어떻게 교육, 장기 계획, 고객 요구에 대한 끊임없는 집중을 통해 클라우드 우선 전략을 구현했는지 알아보십시오. 자세히 알아보기  고객에 집중 2014년에 Capital One은 이제 막 프라이빗 클라우드 기능을 사용하기 시작하면서 AWS도 실험해 보는 단계였습니다. 이 회사는 고객이 원하는 기능을 최대한 빨리 구축하기 위해 AWS를 선택했습니다. 어려운 문

aws.amazon.com

AWS 서비스 중에서 Storage S3 서비스를 생성한다.

IAM을 통해 생성한 Storage S3 서비스 접속을 위한 AccessID, SecretKey를 생성하고,

이를 Server 프로그램에 추가해야 함. 

 

AWS S3를 Stroage로 활용하기 위해서는 반드시 외부 접속 권한을 부여해야 함.

Permissions > Bucket Policy 에 Script를 통해 Public으로 권한을 전환 시켜줘야 하며,

이와 관련된 방법은 아래 블로그에 자세하게 나와 있으니 참고 할 것. 

 

http://wildpup.cafe24.com/archives/804

 

S3 버킷과 객체의 권한을 설정하여 웹에 공개하기 | 야생강아지 WILDPUP

S3 객체를 웹에 공개한다는 의미는 다르게 말하면 그 권한을 조정하는 의미와도 같다. 권한은 객체 별로도 지정할 수 있으며 버킷에서 권한을 조정하여 객체에 모두 적용시킬 수도 있다. 뿐만 아니라 다양한 접근제어 기능을 제공하므로 다양한 조건을 이용한 제어가 가능하다.

wildpup.cafe24.com

 

 

※ Heroku 서버 업로드 시, .env 파일은 업로드 하지 않음으로 해당 환경 변수를 가져올 수 있도록

   추가적인 작업이 필요함.

 

이를 위해서는 multer-s3와 aws-sdk 패키지 설치가 필요함.

> yarn add multer-s3
> yarn add aws-sdk