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


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 권한은 주었습니다.. 지역도 서울로 바꿔도 똑같고 참 난감합니다...

  • 2016년 06월 01일에 수정됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.
  • 2016년 04월 26일에 작성됨
    AWS, node.js, socket.io, mongoDB

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


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

   });

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

  • 왜인지 자꾸 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     

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

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