wepy-plugin-resources-cdn
Version:
upload wepy resources to cdn
74 lines (55 loc) • 2.53 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 _cosNodejsSdkV = require('cos-nodejs-sdk-v5');
var _cosNodejsSdkV2 = _interopRequireDefault(_cosNodejsSdkV);
var _promise = require('promise');
var _promise2 = _interopRequireDefault(_promise);
var _utils = require('../../utils');
var _utils2 = _interopRequireDefault(_utils);
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
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 CosDriver = function () {
function CosDriver(options) {
_classCallCheck(this, CosDriver);
this.options = options;
this.client = new _cosNodejsSdkV2.default({
SecretId: this.options.cos.secretId,
SecretKey: this.options.cos.secretKey
});
}
_createClass(CosDriver, [{
key: 'uploader',
value: function uploader(remotePath, localFile) {
var _this2 = this;
var _this = this;
return new _promise2.default(function (resolve, reject) {
try {
var bucket = _this.options.cos.bucket + '-' + _this.options.cos.appId;
_this2.client.putObject({
Bucket: bucket,
Region: _this.options.cos.region,
Key: remotePath,
Body: _fs2.default.createReadStream(localFile),
ContentLength: _fs2.default.statSync(localFile).size
}, function (err, data) {
if (err) {
reject(err);
} else {
var url = (_this.options.cos.https ? 'https' : 'http') + '://' + data.Location;
resolve(_utils2.default.responeCdn(url, data));
}
});
} catch (e) {
reject(e);
}
});
}
}]);
return CosDriver;
}();
exports.default = CosDriver;