wepy-plugin-resources-cdn
Version:
upload wepy resources to cdn
69 lines (47 loc) • 2.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _promise = require('promise');
var _promise2 = _interopRequireDefault(_promise);
var _qiniu = require('qiniu');
var _qiniu2 = _interopRequireDefault(_qiniu);
var _utils = require('../../utils');
var _utils2 = _interopRequireDefault(_utils);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var QiniuDriver = function () {
function QiniuDriver(options) {
_classCallCheck(this, QiniuDriver);
this.options = options;
this.mac = new _qiniu2.default.auth.digest.Mac(options.qiniu.accessKey, options.qiniu.secretKey);
var config = new _qiniu2.default.conf.Config();
if (options.qiniu.config) {
config = Object.assign(options.qiniu.config, config);
}
this.formUploader = new _qiniu2.default.form_up.FormUploader(config);
this.putExtra = new _qiniu2.default.form_up.PutExtra();
}
_createClass(QiniuDriver, [{
key: 'uploader',
value: function uploader(remotePath, localFile) {
var _this = this;
var putPolicy = new _qiniu2.default.rs.PutPolicy({
scope: this.options.qiniu.bucket + ":" + remotePath
});
var uploadToken = putPolicy.uploadToken(this.mac);
return new _promise2.default(function (resolve, reject) {
_this.formUploader.putFile(uploadToken, remotePath, localFile, _this.putExtra, function (respErr, respBody, respInfo) {
if (respErr) {
reject(respErr);
}
var url = _this.options.qiniu.domain + '/' + respBody.key;
resolve(_utils2.default.responeCdn(url, [respBody, respInfo]));
});
});
}
}]);
return QiniuDriver;
}();
exports.default = QiniuDriver;