Changed s3-sync dependency to the s3 module, better maintained. API hasn't changed

This commit is contained in:
Jack Guy
2016-01-09 14:44:08 -06:00
parent 446ed829ec
commit c0070e9578
2 changed files with 41 additions and 37 deletions

View File

@@ -1,24 +1,22 @@
var s3 = require('s3');
var chalk = require('chalk'); var chalk = require('chalk');
var s3sync = require('s3-sync');
var readdirp = require('readdirp');
module.exports = function(args) { module.exports = function(args) {
var config = {
maxAsyncS3: args.concurrency,
s3Options: {
accessKeyId: args.aws_key || process.env.AWS_KEY,
secretAccessKey: args.aws_secret || process.env.AWS_SECRET,
region: args.region
}
};
var client = s3.createClient(config);
var publicDir = this.config.public_dir; var publicDir = this.config.public_dir;
var log = this.log; var log = this.log;
if (!args.hasOwnProperty('concurrency')) { if (!args.bucket || !config.s3Options.accessKeyId || !config.s3Options.secretAccessKey) {
args.concurrency = 8;
}
if (!args.hasOwnProperty('aws_key')) {
args.aws_key = process.env.AWS_KEY
}
if (!args.hasOwnProperty('aws_secret')) {
args.aws_secret = process.env.AWS_SECRET;
}
if (!args.bucket || !args.aws_key || !args.aws_secret) {
var help = ''; var help = '';
help += 'You should configure deployment settings in _config.yml first!\n\n'; help += 'You should configure deployment settings in _config.yml first!\n\n';
@@ -36,20 +34,22 @@ module.exports = function(args) {
return; return;
} }
// s3sync takes the same options arguments as `knox`, var params = {
// plus some additional options listed above localDir: publicDir,
return readdirp({root: publicDir, entryType: 'both'}) deleteRemoved: true,
.pipe(s3sync({ s3Params: {
key: args.aws_key, Bucket: args.bucket
secret: args.aws_secret, }
bucket: args.bucket, }
concurrency: args.concurrency,
region: args.region var uploader = client.uploadDir(params);
}).on('data', function(file) {
log.info(file.fullPath + ' -> ' + file.url) return uploader
.on('progress', function() {
log.info(uploader.progressAmount + ' / ' + uploader.progressTotal);
}).on('end', function() { }).on('end', function() {
log.info('Done!'); log.info('Done!');
}).on('fail', function(err) { }).on('error', function(err) {
log.error(err) log.error(err)
})); });
}; };

View File

@@ -1,6 +1,6 @@
{ {
"name": "hexo-deployer-s3", "name": "hexo-deployer-s3",
"version": "0.1.0", "version": "0.2.0",
"description": "Amazon S3 deployer plugin for Hexo", "description": "Amazon S3 deployer plugin for Hexo",
"main": "index", "main": "index",
"keywords": [ "keywords": [
@@ -10,10 +10,16 @@
"deployer" "deployer"
], ],
"author": "Nicholas Terwoord <nicholas.terwoord+code@gmail.com>", "author": "Nicholas Terwoord <nicholas.terwoord+code@gmail.com>",
"contributors": [{ "contributors": [
{
"name": "Josh Strange", "name": "Josh Strange",
"email": "josh@joshstrange.com" "email": "josh@joshstrange.com"
}], },
{
"name": "Jack Guy",
"email": "jack@thatguyjackguy.com"
}
],
"repository": { "repository": {
"type": "git", "type": "git",
"url": "http://github.com/nt3rp/hexo-deployer-s3.git" "url": "http://github.com/nt3rp/hexo-deployer-s3.git"
@@ -25,9 +31,7 @@
"hexo": "3.x" "hexo": "3.x"
}, },
"dependencies": { "dependencies": {
"chalk": "^1.0.0", "chalk": "^1.1.1",
"level": "^0.18.0", "s3": "^4.4.0"
"readdirp": "^0.3.3",
"s3-sync": "^0.5.1"
} }
} }