LearnBoost/knox — pull request #251 by geta6 (2014-10-11 02:13:29+00:00)
Title: check url.query is object or not

when `url.query` is `null`, skip whitelist check.

```
console.log(url); // knox/lib/auth.js#208~

{ protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: null,
query: null,
pathname: '/media/sample.txt',
path: '/media/sample.txt',
href: '/media/sample.txt' }

TypeError: Object.keys called on non-object
at Function.keys (native)
at Object.exports.canonicalizeResource (node_modules/knox/lib/auth.js:209:10)
at Client.request (node_modules/knox/lib/client.js:275:22)
at Client.head (node_modules/knox/lib/client.js:586:15)
at Client.headFile (node_modules/knox/lib/client.js:604:18)
at lib/s3.coffee:17:14
at Object.module.exports.head (lib/s3.coffee:16:9)
at Object. (lib/s3.coffee:25:3)
at Object. (lib/s3.coffee:3:1)
at Module._compile (module.js:460:26)
at Object.exports.run (/usr/local/var/nodebrew/node/v0.11.14/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:119:23)
at compileScript (/usr/local/var/nodebrew/node/v0.11.14/lib/node_modules/coffee-script/lib/coffee-script/command.js:207:29)
at compilePath (/usr/local/var/nodebrew/node/v0.11.14/lib/node_modules/coffee-script/lib/coffee-script/command.js:160:14)
at Object.exports.run (/usr/local/var/nodebrew/node/v0.11.14/lib/node_modules/coffee-script/lib/coffee-script/command.js:95:21)
at Object. (/usr/local/var/nodebrew/node/v0.11.14/lib/node_modules/coffee-script/bin/coffee:7:41)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:124:16)
at node.js:842:3
```