diff --git a/lib/storage/bucket.js b/lib/storage/bucket.js index 46cb833611d..7e5c498fb72 100644 --- a/lib/storage/bucket.js +++ b/lib/storage/bucket.js @@ -22,7 +22,7 @@ var extend = require('extend'); var fs = require('fs'); -var mime = require('mime'); +var mime = require('mime-types'); var path = require('path'); /** @@ -410,16 +410,12 @@ Bucket.prototype.upload = function(localPath, options, callback) { } var metadata = options.metadata || {}; - var contentType = mime.lookup(localPath); + var contentType = mime.contentType(path.basename(localPath)); + if (contentType && !metadata.contentType) { metadata.contentType = contentType; } - var charset = mime.charsets.lookup(metadata.contentType); - if (charset) { - metadata.contentType += '; charset=' + charset; - } - var resumable; if (util.is(options.resumable, 'boolean')) { resumable = options.resumable; diff --git a/package.json b/package.json index 84d25958e46..fd8f4a4aa02 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "extend": "^1.3.0", "fast-crc32c": "^0.1.3", "google-service-account": "^1.0.3", - "mime": "^1.2.11", + "mime-types": "^2.0.3", "node-uuid": "^1.4.1", "protobufjs": "^3.4.0", "request": "^2.39.0", diff --git a/test/storage/bucket.js b/test/storage/bucket.js index 0ec83e7ced6..cb94a90b631 100644 --- a/test/storage/bucket.js +++ b/test/storage/bucket.js @@ -353,7 +353,8 @@ describe('Bucket', function() { fakeFile.createWriteStream = function(options) { var dup = duplexify(); setImmediate(function() { - assert.equal(options.metadata.contentType, 'application/json'); + var expectedContentType = 'application/json; charset=utf-8'; + assert.equal(options.metadata.contentType, expectedContentType); done(); }); return dup; @@ -367,8 +368,8 @@ describe('Bucket', function() { fakeFile.createWriteStream = function(options) { var dup = duplexify(); setImmediate(function() { - assert.equal( - options.metadata.contentType, 'text/plain; charset=UTF-8'); + var expectedContentType = 'text/plain; charset=utf-8'; + assert.equal(options.metadata.contentType, expectedContentType); done(); }); return dup;