0

我正在尝试使用 Knox 库将 PDF 上传到 S3 存储桶,但我不断收到 505 错误并且 PDF 无法保存。我的代码:

// 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 响应。

4

2 回答 2

0

这本身不是一个答案,我仍然不确定上面的 505 响应,但是如果有人对 Knox 有类似的问题,亚马逊推出的 AWS 开发工具包非常有用。以上只是变成:

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);
});
于 2013-05-04T15:17:23.147 回答
0

2 可能的原因。1)如果这是您的完整代码,那么您忘记输入密钥、秘密和存储桶。

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

2) 您尝试上传的文件名中有一个空格。

于 2013-05-04T13:46:06.060 回答