tencent cloud

Feedback

Signature Distribution

Last updated: 2020-08-28 16:53:57

    Video upload from client refers to uploading local videos to the VOD platform by an end user of the application. For more information, please see Guide. This document describes how to generate a signature for upload from client.

    Overview

    The overall process for upload from client is as follows:

    To support upload from client, you need to build two backend services: signature distribution service and event notification receipt service.

    • The client first requests an upload signature from the signature distribution service.
    • The signature distribution service verifies whether the client user has the upload permission. If the verification passes, a signature will be generated and distributed; otherwise, an error code will be returned, and the upload process will end.
    • After receiving the signature, the client will use the upload feature integrated in the UGSV SDK to upload the video.
    • After the upload is completed, the VOD backend will send an upload completion event notification to your event notification receipt service.
    • If the signature distribution service specifies a video processing task flow in the signature, the VOD service will automatically process the video accordingly after the video is uploaded. Video processing in UGSV scenarios is generally AI-based porn detection.
    • After the video is processed, the VOD backend will send a task flow status change event notification to your event notification receipt service.

    At this point, the entire video upload and processing flow ends.

    Signature Generation

    For more information on the signature for upload from client, please see Signature for Upload from Client.

    Signature Distribution Service Implementation Sample

    /**
     * Calculate a signature
     */
    function createFileUploadSignature({ timeStamp = 86400, procedure = '', classId = 0, oneTimeValid = 0, sourceContext = '' }) {
        // Determine the current time and expiration time of the signature
        let current = parseInt((new Date()).getTime() / 1000)
        let expired = current + timeStamp;  // Signature validity period: 1 day
        // Enter the parameters into the parameter list
        let arg_list = {
            //required
            secretId: this.conf.SecretId,
            currentTimeStamp: current,
            expireTime: expired,
            random: Math.round(Math.random() * Math.pow(2, 32)),
            //opts
            procedure,
            classId,
            oneTimeValid,
            sourceContext
        }
        // Calculate the signature
        let orignal = querystring.stringify(arg_list);
        let orignal_buffer = new Buffer(orignal, "utf8");
        let hmac = crypto.createHmac("sha1", this.conf.SecretKey);
        let hmac_buffer = hmac.update(orignal_buffer).digest();
        let signature = Buffer.concat([hmac_buffer, orignal_buffer]).toString("base64");
        return signature;
    }
    /**
     * Respond to a signature request
     */
    function getUploadSignature(req, res) {
        res.json({
            code: 0,
            message: 'ok',
            data: {
                signature: gVodHelper.createFileUploadSignature({})
            }
        });
    }
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support