rocket-cli
Version:
Pure command line tool to replace Baidu('百毒') NetDisk or other NetDisk with this COOL shit!
63 lines (59 loc) • 1.9 kB
JavaScript
var qiniu = require('qiniu');
var db = require('../db/index');
var util = require('../util');
var Promise = require('promise');
var bucket = '';
var domain = '';
function generateUploadtoken(bucket, cloudFileName) {
var putPolicy = new qiniu.rs.PutPolicy(bucket + ":" + cloudFileName);
return putPolicy.token();
}
module.exports = {
init: function () {
return new Promise(function (resolve, reject) {
db.getInstance().find({
bucket: {$exists: true},
secretKey: {$exists: true},
accessKey: {$exists: true}
}, function (err, docs) {
if (err || !docs || docs.length === 0) {
util.logError('No cloud config found! \n');
util.logError('Use config -h for help\n');
reject('Cannot find config ');
} else {
var cloudConfig = docs[0];
qiniu.conf.ACCESS_KEY = cloudConfig.accessKey;
qiniu.conf.SECRET_KEY = cloudConfig.secretKey;
bucket = cloudConfig.bucket;
domain = cloudConfig.domain;
return resolve();
}
});
});
},
upload: function (cloudFileName, locaFile) {
return new Promise(function (resolve, reject) {
var extra = new qiniu.io.PutExtra();
qiniu.io.putFile(generateUploadtoken(bucket, cloudFileName), cloudFileName, locaFile, extra, function (err, ret) {
if (!err) {
return resolve(ret);
} else {
return reject(err);
}
}).on('error', function () {});
});
},
download: function (key) {
return new Promise(function (resolve, reject) {
var url = 'http://' + domain + '/' + key;
var policy = new qiniu.rs.GetPolicy();
var downloadUrl = policy.makeRequest(url);
if (downloadUrl) {
util.logSuccess('\n Download url: ' + downloadUrl);
resolve(downloadUrl);
} else {
reject('');
}
});
}
};