Skip to content

Commit

Permalink
Fix hasha parameters to use fromFile()
Browse files Browse the repository at this point in the history
  • Loading branch information
clineamb committed Aug 3, 2015
1 parent 5cf7a06 commit 9fce915
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 38 deletions.
74 changes: 41 additions & 33 deletions index.js
@@ -1,6 +1,7 @@
var es = require('event-stream')
, gutil = require('gulp-util')
, AWS = require('aws-sdk')
, path = require('path')
, mime = require('mime')
, hasha = require('hasha')
, _ = require('underscore')
Expand All @@ -22,7 +23,8 @@ gulpPrefixer = function (AWS) {
return function (options) {

var stream, _s3 = new AWS.S3(),
the_bucket = options.Bucket || options.bucket;
the_bucket = options.Bucket || options.bucket
;

if(!the_bucket) {
throw new PluginError(PLUGIN_NAME, "Missing S3 bucket name!");
Expand All @@ -44,6 +46,7 @@ gulpPrefixer = function (AWS) {
return callback(new gutil.PluginError(PLUGIN_NAME, 'No stream support.'));
}


// =====================================================
// ============= METHOD TRANSFORMS & LOOKUPS ===========
// =====================================================
Expand Down Expand Up @@ -112,7 +115,7 @@ gulpPrefixer = function (AWS) {
options.etag_hash = 'md5';
}

hasha.fromStream(file,
hasha.fromFile(path.join(file.base, file.relative),
{'algorithm': options.etag_hash}, function (hasha_err, hash) {

if(hasha_err) {
Expand All @@ -133,42 +136,44 @@ gulpPrefixer = function (AWS) {
}

if(getData && getData.ETag === '"' + hash + '"') {
gutil.log(gutil.colors.magenta("No Change ....."), keyname);
// AWS ETag doesn't match local ETag

return callback(null);
}
gutil.log(gutil.colors.gray("No Change ..... "), keyname);
callback(null);

objOpts = helper.filterOptions(options);
} else {
objOpts = helper.filterOptions(options);

objOpts.Bucket = the_bucket;
objOpts.Key = keyname;
objOpts.Body = file.contents;
objOpts.ContentType = mimetype;
objOpts.Metadata = metadata;
objOpts.Bucket = the_bucket;
objOpts.Key = keyname;
objOpts.Body = file.contents;
objOpts.ContentType = mimetype;
objOpts.Metadata = metadata;

if (options.uploadNewFilesOnly && !getData || !options.uploadNewFilesOnly) {
if (options.uploadNewFilesOnly && !getData || !options.uploadNewFilesOnly) {

gutil.log(gutil.colors.cyan("Uploading ....."), keyname);
gutil.log(gutil.colors.cyan("Uploading ..... "), keyname);

_s3.putObject(objOpts, function (err, data) {
_s3.putObject(objOpts, function (err, data) {

if (err) {
return callback(new gutil.PluginError(PLUGIN_NAME, "S3 putObject Error: " + err.stack));
}
if (err) {
return callback(new gutil.PluginError(PLUGIN_NAME, "S3 putObject Error: " + err.stack));
}

if (getData) {
if (getData.ETag !== data.ETag) {
gutil.log(gutil.colors.yellow("Updated ......."), keyname);
if (getData) {
if (getData.ETag !== data.ETag) {
gutil.log(gutil.colors.yellow("Updated ....... "), keyname);
} else {
gutil.log(gutil.colors.gray("No Change ..... "), keyname);
}
} else {
gutil.log(gutil.colors.gray("No Change ....."), keyname);
// doesn't exist in bucket, the object is new to the bucket
gutil.log(gutil.colors.green("Uploaded! ..... "), keyname);
}
} else {
// doesn't exist in bucket, the object is new to the bucket
gutil.log(gutil.colors.green("Uploaded! ....."), keyname);
}

callback(null);
});
callback(null);
});
}
}
});
});
Expand All @@ -186,11 +191,11 @@ module.exports = function (config) {
var aws_config = config || {};

// Maintain backwards compatibility with legacy key and secret options
if (config.key) {
if(config.key) {
aws_config.accessKeyId = config.key;
}

if (config.secret) {
if(config.secret) {
aws_config.secretAccessKey = config.secret;
}

Expand All @@ -200,17 +205,20 @@ module.exports = function (config) {
// http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html

// Configure the proxy if an environment variable is present.
if (process.env.HTTPS_PROXY) {
if(process.env.HTTPS_PROXY) {
gutil.log("setting https proxy to %s", process.env.HTTPS_PROXY);
if (!aws_config.httpOptions)
aws_config.httpOptions = {};

if(!aws_config.httpOptions) {
aws_config.httpOptions = {};
}

var HttpsProxyAgent = require('https-proxy-agent');

aws_config.httpOptions.agent = new HttpsProxyAgent(process.env.HTTPS_PROXY);
}

// Update the global AWS config if we have any overrides
if (Object.keys(aws_config).length) {
if(Object.keys(aws_config).length) {
AWS.config.update(aws_config);
}

Expand Down
8 changes: 4 additions & 4 deletions package.json
Expand Up @@ -23,12 +23,12 @@
},
"homepage": "https://github.com/clineamb/gulp-s3-upload",
"dependencies": {
"aws-sdk": "2.1.17",
"aws-sdk": "2.1.42",
"event-stream": "^3.3.1",
"gulp-util": "^3.0.4",
"gulp-util": "^3.0.6",
"hasha": "^1.0.1",
"https-proxy-agent": "^0.3.5",
"https-proxy-agent": "^1.0.0",
"mime": "1.3.4",
"underscore": "1.8.2"
"underscore": "1.8.3"
}
}
3 changes: 2 additions & 1 deletion src/helper.js
Expand Up @@ -31,7 +31,8 @@ module.exports = {
'ContentType',
'verbose',
'uploadNewFilesOnly',
'charset'
'charset',
'etag_hash'
];

return _.omit(params, omit_array);
Expand Down

0 comments on commit 9fce915

Please sign in to comment.