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

조회수 1963회

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

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
    });
    

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

    • 으어어... 그렇군요... 감사합니다!! 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

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)