2014-09-02 39 views
5

我正在使用knox(https://github.com/LearnBoost/knox)將文件上傳到Amazon S3。我剛剛將我的節點應用程序移至Amazon EC2,並且在使用knox上傳時出現以下錯誤。我似乎已經安裝了所有的庫。 nodejitsu上的代碼相同。我對node/JS很新,所以我不確定這是什麼意思。TypeError:使用knox上傳非對象時調用的Object.keys

/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

也許,你和我一樣,都經過「MIME類型」字符串作爲第三個參數中client.putFile()函數...

你必須通過一個對象指定內容類型頭:

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

,或者直接忽略第三個參數(像我一樣):

client.putFile(localPath, s3Path, function(err, result) {}); 
相關問題