我正在尝试使用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响应。
答案 0 :(得分:0)
2可能的原因。 1)如果这是您的完整代码,那么您忘记输入密钥,密码和存储桶。
var client = knox.createClient({
key: '<api-key-here>'
, secret: '<secret-here>'
, bucket: 'learnboost'
});
2)您尝试上传的文件名中有一个空格。
答案 1 :(得分: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);
});