first commit
This commit is contained in:
67
dist/plugins/qiniu.js
vendored
Normal file
67
dist/plugins/qiniu.js
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const qiniu_1 = __importDefault(require("qiniu"));
|
||||
const typedi_1 = require("typedi");
|
||||
const index_1 = require("../config/index");
|
||||
let QiNiu = class QiNiu {
|
||||
constructor() {
|
||||
this.FromBucket = index_1.config.qiniu.HLSconfig.FromBucket;
|
||||
this.ToBucket = index_1.config.qiniu.HLSconfig.ToBucket;
|
||||
this.VideoHlsParams = index_1.config.qiniu.HLSconfig.VideoHlsParams;
|
||||
this.accessKey = index_1.config.qiniu.accessKey;
|
||||
this.secretKey = index_1.config.qiniu.secretKey;
|
||||
this.mac = new qiniu_1.default.auth.digest.Mac(this.accessKey, this.secretKey);
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param BucketName
|
||||
* @constructor
|
||||
*/
|
||||
GenerateToken(BucketName = "vrcource") {
|
||||
let putPolicy = new qiniu_1.default.rs.PutPolicy({
|
||||
scope: BucketName,
|
||||
expires: 7200
|
||||
});
|
||||
return putPolicy.uploadToken(this.mac);
|
||||
}
|
||||
/**
|
||||
* 根据前端传递的 filename 文件名,对需要的视频进行切片配置,
|
||||
* 返回给前端 token,前端拿到 token 后通过form data将视频和
|
||||
* token 传递给七牛,七牛会根据token开始切片任务。这里不需要
|
||||
* 配置七牛切片成功后的回调通知,因为已经可以通过基地址+m3u8文件名拿到
|
||||
* 切片后的地址
|
||||
* @param params
|
||||
* @constructor
|
||||
*/
|
||||
GenerateHlsToken(params) {
|
||||
let M3u8FileName = new Date().getTime();
|
||||
let saveHlsEntry = qiniu_1.default.util.urlsafeBase64Encode(`${this.ToBucket}:${M3u8FileName}`);
|
||||
const options = {
|
||||
scope: `${this.FromBucket}:${params['filename']}`,
|
||||
persistentOps: `${this.VideoHlsParams}${saveHlsEntry}`,
|
||||
persistentPipeline: 'guaikem3u8',
|
||||
};
|
||||
let putPolicy = new qiniu_1.default.rs.PutPolicy(options);
|
||||
return {
|
||||
filePath: `${index_1.config.qiniu.HLSconfig.VideoBaseUrl}${M3u8FileName}`,
|
||||
token: putPolicy.uploadToken(this.mac)
|
||||
};
|
||||
}
|
||||
};
|
||||
QiNiu = __decorate([
|
||||
typedi_1.Service(),
|
||||
__metadata("design:paramtypes", [])
|
||||
], QiNiu);
|
||||
exports.QiNiu = QiNiu;
|
||||
Reference in New Issue
Block a user