2013-05-03 1 views
0

녹스 라이브러리를 사용하여 S3 버킷에 PDF를 업로드하려고하는데 505 오류가 계속 발생하고 PDF가 저장되지 않습니다. 내 코드 :NodeJS : Knox를 통해 S3로 PDF 업로드하기. putFile returns 505

// all of this works well 
var knox = require('knox'); 
var client = knox.createClient(require('../path/to/config.js').knox); 

client.putFile('tmp/file', '/prefix/key', 
    function(err, res) { 
    if (err) { 
     console.log("Error PUTing file in S3:", err); 
    } 

    console.log("S3 RESPONSE:", res.statusCode); // returns 505 
    } 
); 

누구나 내가 잘못하고있는 것에 대해 통찰력을 갖고 있습니까? 나는 또한 client.put (..)을 사용하여 내 자신의 헤더를 설정하려했지만 동일한 505 응답을 얻었다.

답변

0

이것은 대답이 아닙니다. 위의 505 응답에 대해서는 아직 확실하지 않지만, 누군가가 Knox와 비슷한 문제를 겪고 있다면 아마존이 제시 한 AWS SDK는 훌륭합니다. 위 내용은 다음과 같습니다.

var aws = require('aws-sdk'); 
aws.config.loadFromPath('./path/to/config.json'); 
var s3 = new aws.S3(); 

var params = { Bucket: 'your-bucket', 
       Key: 'your-key', 
       Body: fs.readFileSync('/path/to/file.pdf') }; 

s3.putObject(params, function(err, data) { 
    if (err) { 
    console.log("Error PUTing file:", err); 
    } 
    console.log("S3 RESPONSE:", data); 
}); 
0

2 가능한 이유. 1) 이것이 전체 코드 인 경우 키, 비밀 및 버킷을 입력하는 것을 잊었습니다.

var client = knox.createClient({ 
    key: '<api-key-here>' 
    , secret: '<secret-here>' 
    , bucket: 'learnboost' 
    }); 

2) 업로드하려는 파일 이름에 공백이 있습니다.

+0

안녕하세요. 귀하의 도움에 감사드립니다. Knox.createClient는 위에서 조롱 한 config.js 파일에서 키, 암호 및 버킷을 읽습니다. 그리고 두 번째로, 나는 공간을 포함하여 가능한 모든 문제를 피할 수있었습니다. 기회가 생길 때 Knox 문제를 더 자세히 살펴볼 예정이지만, 현재 다른 사람이 내가 가지고있는 문제에 부딪 힐 경우 AWS-SDK 코드를 게시했습니다. – Philoktetes