AWS S3에서 NetworkingError: connect ECONNREFUSED에러가 발생합니다.

조회수 4241회

node.js에서 aws s3 테스트 중입니다.

var AWS = require('aws-sdk');
AWS.config.region = 'ap-northeast-1';
AWS.config.endpoint = 'archabucket.s3-website-ap-northeast-1.amazonaws.com';
var fs = require('fs');
var s3 = new AWS.S3();

var params = {
          Bucket: 'archabucket',
          Key: 'logo.png',
          ACL: 'public-read ',
          Body: fs.createReadStream('94.png'),
          ContentType: 'image/png'
        };

s3.putObject(params, function(err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else     console.log(data);           // successful response
});

생활코딩을 보면서 간단하게 테스트 중인데 엔드포인트 에러가 뜨길래 엔드포인트를 잡아주니 이번엔 NetworkingError: connect ECONNREFUSED 에러가 뜹니다..

그냥 간단하게 버킷리스트를 반환하는건되는데 .... AmazonS3FullAccess 권한은 주었습니다.. 지역도 서울로 바꿔도 똑같고 참 난감합니다...

  • NetworkingError를 해결하고 나면 fs.createReadStream으로 파일이 보내지나요? 저는 Timeout error가 나던데요. 정토드 2016.4.27 06:47

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    수정 답변

    AWS.config.region = 'ap-northeast-1';
    AWS.config.endpoint = 'archabucket.s3-website-ap-northeast-1.amazonaws.com';
    

    여기가 문제인 것 같네요. 서울의 region과 endpoint는 다음과 같이 지정해야 합니다.(ap-northeast-1은 일본이고, 2로 해야 서울입니다.)

    AWS.config.region = 'ap-northeast-2';
    AWS.config.endpoint = 's3.ap-northeast-2.amazonaws.com';
    

    이전 답변

    Aws Node.js SDK 페이지에 나온 코드를 조금 수정 하니 데이터가 업로드되네요.

    아래 코드에서 추가된 부분이라고 주석 달린 부분은 여기를 참고했어요.

    var AWS = require('aws-sdk'); 
    
    //추가된 부분-시작
    AWS.config.update({
        signatureVersion: 'v4'
    });
    //추가된 부분-끝
    
    var s3 = new AWS.S3(); 
    
     s3.createBucket({Bucket: '버킷name'}, function() {
    
      var params = {Bucket: '버킷name', Key: 'myKey', Body: 'Hello!'};
    
      s3.putObject(params, function(err, data) {
    
          if (err)       
    
              console.log(err)     
    
          else       console.log("Successfully uploaded data to myBucket/myKey");   
    
       });
    
    });
    
    • 왜인지 자꾸 NetworkingError: connect ECONNREFUSED가 뜨네요... 다른 설정이 잘못된것일까요 ㅠㅠ KimTaesik 2016.4.27 01:27
    • endpoint가 문제였네요. 답변을 수정했습니다. 정토드 2016.4.27 06:36
    • 으어.. s3-website-ap-northeast가 아니라 s3-ap-northeast였네요.. 감사합니다! KimTaesik 2016.4.27 19:24

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

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

(ಠ_ಠ)
(ಠ‿ಠ)