AWS S3에 대하여 조언을 구하고싶습니다.


웹 메신저를 만들면서 각 채팅창에서 주고받는 file들을 aws s3에 저장시킬려고 합니다. bucket name을 채팅방 이름으로 주게되면 방을 나가게되었을때 그 bucket에 접근할수가 없어 (ex. 카카오톡 : 방을 나가면 파일들 증발) 각 개인의 특정한 name으로 bucket을 주어 개인별로 관리하려고 생각하고 있습니다.
bucket 수는 일정 비용을 지불하면 늘어나는걸로 알고있는데, 용량 제한에 대하여는 찾아봤을땐 방법이 나오질 않아서 다른 방법으로 각 bucket의 용량제한을 따로 줄 수 있는지 궁금합니다. 아니면 이렇게 데이터들을 관리하는데 aws s3에서 좋은 방법이 있을까요?

  • 2016년 04월 28일에 작성됨
    AWS, node.js, socket.io, mongoDB

조회수 166


2 답변


좋아요
1
싫어요
채택취소하기

이전 질문을 보면 Javascript로 작업중이신것 같은데요.

http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html 를 보면 bucket의 용량을 구해오는 API가 없네요.

아래와 같이 listObjects를 통해서 bucket의 모든 파일을 불러올 수 있습니다. 각 파일의 크기도 읽어올 수 있구요.

s3.listObjects({Bucket: 'bucketname'}, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

이렇게 불러와서 모든 파일의 크기를 더하면 될 것 같긴 합니다만, 파일이 많아지면 매번 이렇게 불러와서 하는건 비효율적일수도 있겠네요.

  • 2016년 04월 29일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.

  • 으어어... 그렇군요... 감사합니다!!    KimTaesik   2016.4.29 15:53     

bucket 을 채팅방마다 주는 건 좋은 방식이 아닙니다.

명시적으로 나와 있지는 않지만 AWS 계정당 최대 bucket 수가 처음에 100개로 제한되어 있거든요. 신청하면 늘려주기는 하는데, 너무 많이 늘릴려고 하면 왜 그러냐고 물어보고 안된다고 할 가능성이 높습니다.

Signed URL 이라고 해서 특정 시간 안에서만 권한을 가지는 파일 주소를 만드는 방법이 있는데 한 번 참고해 보시길....

https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/private-content-signed-urls.html


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close