2014-09-02 7 views
5

knox (https://github.com/LearnBoost/knox)를 사용하여 Amazon S3에 파일을 업로드하고 있습니다. knox로 업로드 할 때 내 노드 앱을 Amazon EC2로 옮기고 다음 오류가 발생했습니다. 나는 모든 도서관을 설치 한 것으로 보인다. 동일한 코드가 nodejitsu에서 OK입니다. 나는 node/JS에 익숙하지 않기 때문에 이것이 무엇을 의미하는지 모르겠습니다.TypeError : 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) 

답변

1

아마, 당신이 나처럼, client.putFile에서 세 번째 매개 변수로 문자열을 "MIME 형식"을 통과했다() 함수 ...

당신은 콘텐츠 형식 헤더를 지정하는 개체를 전달해야합니다

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

하거나 (나는처럼) 세 번째 매개 변수를 무시 :

client.putFile(localPath, s3Path, function(err, result) {});