UNPKG

wepy-plugin-resources-cdn

Version:
69 lines (47 loc) 2.49 kB
'use strict'; 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;