wepy-plugin-resources-cdn2
Version:
upload wepy resources to cdn
71 lines (52 loc) • 2.33 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 _awsSdk = require('aws-sdk');
var _awsSdk2 = _interopRequireDefault(_awsSdk);
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 S3Driver = function () {
function S3Driver(options) {
_classCallCheck(this, S3Driver);
this.options = options;
_awsSdk2.default.config.update({
region: this.options.s3.region,
signatureVersion: 'v4',
accessKeyId: this.options.s3.accessKeyId,
secretAccessKey: this.options.s3.secretAccessKey
});
this.client = new _awsSdk2.default.S3();
}
_createClass(S3Driver, [{
key: 'uploader',
value: function uploader(remotePath, localFile) {
var _this = this;
var params = {
Body: _fs2.default.createReadStream(localFile),
Bucket: this.options.s3.bucket,
Key: remotePath
};
return new _promise2.default(function (resolve, reject) {
_this.client.upload(params, function (err, data) {
if (err) {
return reject(err);
}
if (data) {
var url = _this.options.s3.domain + '/' + remotePath;
resolve(_utils2.default.responeCdn(url, data));
}
});
});
}
}]);
return S3Driver;
}();
exports.default = S3Driver;