2014-09-02 11 views
5

Sto usando knox (https://github.com/LearnBoost/knox) per caricare un file su Amazon S3. Ho appena spostato la mia app nodo su Amazon EC2 e ho il seguente errore durante il caricamento con knox. Mi sembra di avere tutte le librerie installate. Lo stesso codice era OK su nodejitsu. Sono abbastanza nuovo per nodo/JS quindi non sono sicuro di cosa significhi.TypeError: Object.keys chiamato non-object durante il caricamento con 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) 

risposta

1

Forse, si, come me, passavano le "mimetype" stringa come terzo parametro in client.putFile) la funzione (...

Devi passare un oggetto che specifica le intestazioni tipo di contenuto:

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

o semplicemente ignorare il terzo parametro (come ho fatto io):

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