2014-09-02 13 views
5

Używam knox (https://github.com/LearnBoost/knox) do przesłania pliku do Amazon S3. Właśnie przeniosłem aplikację węzła do Amazon EC2 i mam następujący błąd podczas wysyłania z knox. Wygląda na to, że mam zainstalowane wszystkie biblioteki. Ten sam kod był OK na nodejitsu. Jestem całkiem nowy w węźle/JS, więc nie jestem pewien co to oznacza.TypeError: Object.keys wywołany przy próbie załadowania przy użyciu 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) 

Odpowiedz

1

Być może, jak ja, mijały się „MIME” ciąg jako trzeci parametr w client.putFile (funkcja) ...

Musisz przekazać obiekt określający typ zawartości nagłówków:

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

lub po prostu zignorować trzeci parametr (jak ja):

client.putFile(localPath, s3Path, function(err, result) {}); 
Powiązane problemy