2.0.3 • Published 3 years ago
wlite-avsdk-vod-upload-node-v2-u v2.0.3
旺链VOD上传sdk -node.js
pakcagename: wlite-avsdk-vod-upload-node-v2,
vesion: v2.0.2
安装方法
npm
npm i wlite-avsdk-vod-upload-node-v2
yarn
yarn add wlite-avsdk-vod-upload-node-v2
导入库方法
第一种
const pu = require('wlite-avsdk-vod-upload-node-v2-u');
使用方法
let publish = new pu.default()
.withAppServerUrl(url)
.withToken(token)
.withFFmpeg(ffmpegPath);
第二种
import pu2 from 'wlite-avsdk-vod-upload-node-v2-u';
使用方法
let publish = pu2.prototype
.withToken(token)
.withFFmpeg(ffmpegPath)
.withAppServerUrl(url);
新接口使用案例
function V2main() {
let token = "eyJhbGciOiJIUzUxMiJ9.eyJhdWQiOiJudWxsIiwiaGVhZEltZyI6Imh0dHBzOi8vb3NzLmRpZGltZXNzYWdlLmNvbS9pbWFnZXMvMjAyMC8xMS8yMy9hNjliYjA1ZS0wNTBhLTRjNjctODk4OC0zYjc5M2IwMTlmZmFfMTAwOHgxMDA4LmpwZyIsIm5pY2tOYW1lIjoi5bqZ6KGM55S15a2Q5ZWG5Yqh56S66IyD5Z-65Zyw5L-d5a6J5p2O5aSn54i3IiwiY291bnRyeUNvZGUiOm51bGwsImludml0ZUNvZGUiOiIxMDEzMzc5OCIsInNleCI6MSwiaXNzIjoiMTA4ODY1OTc3OTA3MDE0NDUxMiIsInVzZXJUeXBlIjowLCJleHAiOjQxOTk2NzIyODEsImlhdCI6MTYwNzY3MjI4MSwiZW1haWwiOm51bGwsImp0aSI6IjcyNWU0ZTFiLTdmM2MtNDlmYi04MTgzLTdjN2Y3NTBjODQzZSJ9.Y_VuAaA5ofWTWA9tu29edR-W7_NoXaWl_cxEje0iRGXQ8TRwvndp7hfmU60RI_w8s9N4xi8kJfOLrieCB5U_cA";
let ffmpegPath = '/Users/macos/Desktop/Documents/ffmpeg-mac';
/**
* @breif 初始化对象接口
* @function withAppServerUrl()
* @param url 服务器路径
* @function withToken()
* @param token 令牌地址
* @function withFFmpeg()
* @param ffmpegPath ffmpeg路径
* @return publish 对象接口
*/
let publish = new pu.default()
.withAppServerUrl('https://test500.zhidianjh.com:8228/') //服务器地址
.withToken(token)
.withFFmpeg(ffmpegPath);
/**
* V1兼容接口
* publish.PublishFileAsync(param.encrypt = true) ==PublishCryptFileAsync()
*/
publish.PublishFileAsync({
file: '/Users/macos/Desktop/Documents/data.txt',
mark: 'fileme',
encrypt: true
});
/**
* V2接口信息
* @breif 上传加密文件
* @param file 文件路径
* @param mark 文件标识
* @return progress 回调函数 用来监控上传进度
* @return ret 返回的所有参数信息
* */
publish.PublishCryptFileAsync({
file: '/Users/macos/Desktop/Documents/data.txt',
mark: 'fileme'
}, progress => {
console.log(progress.Uploaded / progress.Total);
})
.then(ret => {
console.log("id-----" + ret.id);
console.log("mark---" + ret.mark);
console.log("size---" + ret.filesize);
console.log("url----" + ret.url);
})
.catch(e => {
console.error(e);
})
/**
* V1兼容接口
* publish.PublishVideoAsync(param.encrypt = true) == PublishCryptVideoAsync()
*/
publish.PublishVideoAsync({
file: '/Users/macos/Desktop/Documents/data.txt',
mark: 'fileme',
encrypt: true
});
/**
* @breif 上传加密视频
* @param video 视频路径
* @param mark 文件标示
* @return progress 回调函数 用来监控上传进度
* @return ret 返回的所有参数信息
*/
publish.PushlishCryptVideoAsync({
video: 'D:\\UserData\\Video\\13464003121845cd7ab6001.mp4',
mark: 'fdf'
}, progress => {
console.log(`total--${progress.Total} progress--${progress.Uploaded / progress.Total}`);
})
.then(ret => {
console.log('url:' + ret.url);
console.log('id:' + ret.id);
console.log('cover:' + ret.cover);
})
.catch(e => {
console.error(e);
})
/**
* V1兼容接口
* publish.publishImageAsync(param.encrypt = true) == PublishCryptImageAsync()
* V2修订格式错误(保留原有接口 都可以使用)
* publish.PublishImageAsync(param.encrypt = true) == PublishCryptImageAsync()
*/
let param = new pu.ImagePublishParam(
"/Users/macos/Desktop/Documents/timg.png",
'mark'
);
param.usage = 0;
param.duration = -1;
param.resolutions = [
{name: 'High', quality: 92, height: 200},
{name: 'Low', quality: 80, scale: 0.3}
];
param.encrypt = true;
publish.PublishCryptImageAsync(param, progress => {
console.log(progress.Uploaded / progress.Total);
})
/**
* @breif 上传头像
* @param ImagePublishParam(文件路径,文件标识)
* @param usage 上传类型
* @param duration 存储时间长度
* @param resolutions 设置分辨率以及压缩比例
* @return progress 回调函数 用来监控上传进度
* @return ret 返回的所有参数信息
*/
let param1 = new pu.ImagePublishParam(
"/Users/macos/Desktop/Documents/timg.png",
'mark'
);
param1.usage = 0;
param1.duration = -1;
param1.resolutions = [
{name: 'High', quality: 92, height: 200},
{name: 'Low', quality: 80, scale: 0.3}
];
publish.PublishCryptImageAsync(param1, progress => {
console.log(progress.Uploaded / progress.Total);
})
.then(ret => {
for (let img of ret) {
console.log(`${img.name}: ${img.url}`);
}
})
.catch(e => {
console.error(e);
})
/**
* @breif 上传表情
* @param ImagePublishParam(文件路径,文件标识)
* @param usage 上传类型
* @param duration 存储时间长度
* @param resolutions 设置分辨率以及压缩比例
* @return progress 回调函数 用来监控上传进度
* @return ret 返回的所有参数信息
*/
let param2 = new pu.ImagePublishParam(
"/Users/macos/Desktop/Documents/timg.png",
'mark2'
);
param2.usage = 2;
param2.duration = 0;
publish.PublishCryptImageAsync(param2, progress => {
;
}).then(ret => {
for (let img of ret) {
console.log(`${img.name}: ${img.url}`);
}
})
/**
* @breif 上传插图
* @param ImagePublishParam(文件路径,文件标识)
* @param usage 上传类型
* @param duration 存储时间长度
* @param resolutions 设置分辨率以及压缩比例
* @return progress 回调函数 用来监控进度
* @return ret 返回的所有参数信息
*/
let param3 = new pu.ImagePublishParam(
"/Users/macos/Desktop/Documents/timg.png",
'mark3'
);
param3.usage = 1;
publish.PublishCryptImageAsync(param2, progress => {
;
}).then(ret => {
for (let img of ret) {
console.log(`${img.name}: ${img.url}`);
}
})
/**
* @breif 聊天上传原图(png, gif等)
* @param ImagePublishParam(文件路径,文件标识)
* @param usage 上传类型
* @param duration 存储时间长度
* @param resolutions 设置分辨率以及压缩比例
* @return progress 回调函数 用来监控进度
* @return ret 返回的所有参数信息
*/
let param4 = new pu.ImagePublishParam(
"/Users/macos/Desktop/Documents/timg.png",
'mark3'
);
param4.usage = 2;
param4.resolutions = [
{name: 'Original', quality: 100},
{name: 'High', quality: 90, scale: 0.8}
];
publish.PublishCryptImageAsync(param4, progress => {
;
}).then(ret => {
for (let img of ret) console.log(`${img.name}: ${img.url}`);
});
/**
* @breif 通过网络URL解密接口
* @param path: string,
* @param key: Uint8Array(64)
* @param digest: ArrayBuffer(32)
*/
publish.PublishPathDecrypt(
"url信息",
"key信息",
"digest信息",
);
/***
* @breif 加密返回对象
* @param EnctyptObject{
* ciphertext: ArrayBuffer; //密文对象
* key: Uint8Array; //密钥(64)
* digest: ArrayBuffer; //摘要(32)
* }
*/
publish.PublishBufferDecrypt({
ciphertext: "",
key: "",
digest: "",
});
}
旧接口使用案例
function V1main() {
/**
* token
**/
let token = "eyJhbGciOiJIUzUxMiJ9.eyJhdWQiOiJudWxsIiwiaGVhZEltZyI6Imh0dHBzOi8vb3NzLmRpZGltZXNzYWdlLmNvbS9pbWFnZXMvMjAyMC8xMS8yMy9hNjliYjA1ZS0wNTBhLTRjNjctODk4OC0zYjc5M2IwMTlmZmFfMTAwOHgxMDA4LmpwZyIsIm5pY2tOYW1lIjoi5bqZ6KGM55S15a2Q5ZWG5Yqh56S66IyD5Z-65Zyw5L-d5a6J5p2O5aSn54i3IiwiY291bnRyeUNvZGUiOm51bGwsImludml0ZUNvZGUiOiIxMDEzMzc5OCIsInNleCI6MSwiaXNzIjoiMTA4ODY1OTc3OTA3MDE0NDUxMiIsInVzZXJUeXBlIjowLCJleHAiOjQxOTk2NzIyODEsImlhdCI6MTYwNzY3MjI4MSwiZW1haWwiOm51bGwsImp0aSI6IjcyNWU0ZTFiLTdmM2MtNDlmYi04MTgzLTdjN2Y3NTBjODQzZSJ9.Y_VuAaA5ofWTWA9tu29edR-W7_NoXaWl_cxEje0iRGXQ8TRwvndp7hfmU60RI_w8s9N4xi8kJfOLrieCB5U_cA";
/**
* url 服务器链接
*/
let url = 'https://test500.zhidianjh.com:8228/';
/**
* ffmpath 路径
*/
let ffmpegPath = 'D:\\UserData\\Document\\Tools\\ffmpeg release\\ffmpeg-4.3.1-win64-static\\bin\\ffmpeg.exe';
/**
* 初始化接口
*/
let publish = new pu.default()
.withAppServerUrl(url)
.withToken(token)
.withFFmpeg(ffmpegPath);
/**
* 上传文件
* @param file 文件路径
* @param mark 文件标识
* @return progress 回调函数 用来监控上传进度
* @return ret 返回的所有参数信息
*/
publish.PublishFileAsync({
file: "fileurl",
mark: 'fileme'
}, progress => {
console.log(progress.Uploaded / progress.Total);
})
.then(ret => {
console.log("id-----" + ret.id);
console.log("mark---" + ret.mark);
console.log("size---" + ret.filesize);
console.log("url----" + ret.url);
})
.catch(e => {
console.error(e);
})
/**
* 上传视频
* @param video 视频路径
* @param mark 文件标示
* @return progress 回调函数 用来监控上传进度
* @return ret 返回的所有参数信息
*/
publish.PublishVideoAsync({
video: "videoFile",
mark: 'fdf'
}, progress => {
console.log(`total--${progress.Total} progress--${progress.Uploaded / progress.Total}`);
})
.then(ret => {
console.log('url:' + ret.url)
console.log('id:' + ret.id)
console.log('cover:' + ret.cover)
})
.catch(e => {
console.error(e);
})
/**
* 上传头像
* @param ImagePublishParam(文件路径,文件标识)
* @param usage 上传类型
* @param duration 存储时间长度
* @param resolutions 设置分辨率以及压缩比例
* @return progress 回调函数 用来监控上传进度
* @return ret 返回的所有参数信息
*/
let param1 = new pu.ImagePublishParam(
"imageFile",
'mark'
);
param1.usage = pu.ImagePublishUsage.Headshot;
param1.duration = -1;
param1.resolutions = [
{name: 'High', quality: 92, height: 200},
{name: 'Low', quality: 80, scale: 0.3}
];
publish.publishImageAsync(param1, progress => {
console.log(progress.Uploaded / progress.Total);
})
.then(ret => {
for (let img of ret) {
console.log(`${img.name}: ${img.url}`);
}
})
.catch(e => {
console.error(e);
})
/**
* 上传表情
* @param ImagePublishParam(文件路径,文件标识)
* @param usage 上传类型
* @param duration 存储时间长度
* @param resolutions 设置分辨率以及压缩比例
* @return progress 回调函数 用来监控上传进度
* @return ret 返回的所有参数信息
* */
let param2 = new pu.ImagePublishParam(
"imageFile",
'mark2'
);
param2.usage = pu.ImagePublishUsage.Meme;
param2.duration = 0;
publish.publishImageAsync(param2, progress => {
;
}).then(ret => {
for (let img of ret) {
console.log(`${img.name}: ${img.url}`);
}
})
/***
* 上传插图
* @param ImagePublishParam(文件路径,文件标识)
* @param usage 上传类型
* @param duration 存储时间长度
* @param resolutions 设置分辨率以及压缩比例
* @return progress 回调函数 用来监控上传进度
* @return ret 返回的所有参数信息
*/
let param3 = new pu.ImagePublishParam(
"imageFile",
'mark3'
);
param3.usage = pu.ImagePublishUsage.Figure;
publish.publishImageAsync(param3, progress => {
;
}).then(ret => {
for (let img of ret) {
console.log(`${img.name}: ${img.url}`);
}
})
/**
* 聊天上传原图(png, gif等)
* @param ImagePublishParam(文件路径,文件标识)
* @param usage 上传类型
* @param duration 存储时间长度
* @param resolutions 设置分辨率以及压缩比例
* @return progress 回调函数 用来监控上传进度
* @return ret 返回的所有参数信息
*/
let param = new pu.ImagePublishParam(
"imageFile",
'mark3'
);
param.usage = pu.ImagePublishUsage.Meme;
param.resolutions = [
{name: 'Original', quality: 100},
{name: 'High', quality: 90, scale: 0.8}
];
publish.PublishImageAsync(param, progress => {
;
}).then(ret => {
for (let img of ret) console.log(`${img.name}: ${img.url}`);
});
}