-
Notifications
You must be signed in to change notification settings - Fork 1
Naver Cloud Platform: Object Storage 도입
- 이미지, 영상, 텍스트, 음성.. 등과 같이 binary data를 server에 어떻게 보관할지에 관한 문제
- 다수의 iOS 개발자들이 사용하는 Firebase를 사용하려 했으나 한정된 저장공간으로 인해 새로운 대안을 찾았고
- 네이버 부스트캠프에서 제공해주는 NAVER Cloud Platform(NCP)를 사용했다.
Naver Cloud Platform가 제공하는 여러 저장소 관련 기능들 중 Restful API를 사용하며 Firebase와 동일하게 사용할 수 있는 기능이 무엇이 있을지 찾아봤다.
그러던 중 Object Storage라는 Storage를 발견했고 이를 사용하면 우리가 원하는 저장소로써 사용할 수 있을 것 같다는 생각이 들었다.
Object Storage는 Bucket이라는 (SQL에서의 Table 느낌?) 카테고리와 Bucket 내부에 Object들을 넣어 관리하는 방식이었다.
NCP 콘솔창
Object 내부에는 사진
, 동영상
, 음성파일
등 여러 데이터 타입이 들어갈 수 있다. (CoreData랑 비슷한 객체 중심 DB 인듯)
Object Storage를 실제로 Restful API를 사용하여 활용할 수 있을지 확인해보기 위해 postman으로 직접 실험을 해보았다.
먼저 NCP에서 받은 AccessKey와 SecretKey를 AWS Signature의 value 값으로 넣어주었다.
마이페이지 > 계정 관리 > 인증키 관리
[신규 API 인증키 생성] 버튼을 클릭하면 AccessKey
와 SecretKey
가 생성된다.
공식 문서를 보면 헤더의 Authorization을 AWS Signature Version4로 넣어주는 것이 필수라고 나와있었다. (이것때매 좀 길게 삽질함)
GET 요청 헤더
이후 Header를 따로 설정해주지 않고 Body에 우리가 넣으려던 이미지 데이터를 binary 데이터로 넣어주었다.
ex) 위 사진과 같이 PUT 요청 바디에 내가 보낼 사진, 영상, 텍스트, 음성 .. 들을 담아서 보낸다.
memorial
이라는 Bucket 내부의 life-cycle
이라는 Object를 불러온 결과이다.
대성공!
https://guide.ncloud-docs.com/docs/ko/storage-storage-6-1
https://www.ncloud.com/product/storage/objectStorage#overview