2013-05-03 6 views
0

Я пытаюсь загрузить PDF в ведро S3 с помощью библиотеки Knox, но я все равно получаю 505 ошибок, и PDF-файлы не будут сохраняться. Мой код:NodeJS: загрузка PDF на S3 через Knox; putFile возвращает 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 выше, но AWS SDK, который Amazon выпускает, отлично работает, если у кого-то есть подобные проблемы с Нокс. Вышесказанное просто становится:

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

Привет, Vikas, и спасибо за помощь. Knox.createClient читает ключ, секрет и ведро из файла config.js, который я высмеивал в приведенном выше. А что касается второго, я избежал всех возможных проблем, включая пробелы. Я собираюсь глубже изучить проблему Knox, когда у меня появится шанс, но пока я опубликовал рабочий код AWS-SDK, если кто-то еще столкнется с проблемой, с которой я столкнулся. – Philoktetes

Смежные вопросы