2.0.3 • Published 3 years ago

wlite-avsdk-vod-upload-node-v2-u v2.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

旺链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}`);
    });
}