2014-09-02 15 views
5

Tôi đang sử dụng knox (https://github.com/LearnBoost/knox) để tải tệp lên Amazon S3. Tôi vừa chuyển ứng dụng nút của mình sang Amazon EC2 và gặp lỗi sau khi tải lên bằng knox. Tôi dường như đã cài đặt tất cả các thư viện. Cùng một mã đã được OK trên nodejitsu. Tôi khá mới đối với nút/JS nên tôi không chắc điều này có nghĩa là gì.TypeError: Object.keys được gọi là không đối tượng khi tải lên với knox

/home/ec2-user/foo/node_modules/knox/lib/auth.js:208 
Object.keys(url.query).forEach(function (key) { 
^ 
TypeError: Object.keys called on non-object 
at Function.keys (native) 
at Object.exports.canonicalizeResource (/home/ec2-user/foo/node_modules/knox/lib/auth.js:208:10) 
at Client.request (/home/ec2-user/foo/node_modules/knox/lib/client.js:275:22) 
at Client.put (/home/ec2-user/foo/node_modules/knox/lib/client.js:326:15) 
at Client.putStream (/home/ec2-user/foo/node_modules/knox/lib/client.js:408:18) 
at /home/ec2-user/foo/node_modules/knox/lib/client.js:378:20 
at Object.oncomplete (fs.js:93:15) 

Trả lời

1

Có lẽ, bạn, như tôi, được đi qua các "Mimetype" chuỗi như tham số thứ ba trong client.putFile() chức năng ...

Bạn phải vượt qua một đối tượng quy định cụ thể các tiêu đề kiểu nội dung:

client.putFile(localPath, s3Path, {'Content-Type': mimetype} ,function(err, result) {}); 

hoặc chỉ cần bỏ qua tham số thứ ba (như tôi đã làm):

client.putFile(localPath, s3Path, function(err, result) {}); 
Các vấn đề liên quan