【问题标题】:TypeError: Object.keys called on non-object when uploading with knoxTypeError:使用 knox 上传时在非对象上调用 Object.keys
【发布时间】:2014-10-26 15:04:49
【问题描述】:

我正在使用 knox (https://github.com/LearnBoost/knox) 将文件上传到 Amazon S3。我刚刚将我的节点应用程序移动到 Amazon EC2 并在使用 knox 上传时出现以下错误。我似乎已经安装了所有的库。相同的代码在 nodejitsu 上是可以的。我对 node / JS 很陌生,所以我不确定这意味着什么。

/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)

【问题讨论】:

    标签: node.js knox-amazon-s3-client


    【解决方案1】:

    也许,你和我一样,在 client.putFile() 函数中将“mimetype”字符串作为第三个参数传递...

    您必须传递一个指定内容类型标头的对象:

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

    或者只是忽略第三个参数(就像我一样):

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

    【讨论】:

      猜你喜欢
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多