tencent cloud

All product documents
User Generated Short Video SDK
Signature Distribution
Last updated: 2020-08-28 16:53:57
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({})
}
});
}

Was this page helpful?
You can also Contact Sales or Submit a Ticket for help.
Yes
No

Feedback

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
Hong Kong, China
+852 800 906 020 (Toll Free)
United States
+1 844 606 0804 (Toll Free)
United Kingdom
+44 808 196 4551 (Toll Free)
Canada
+1 888 605 7930 (Toll Free)
Australia
+61 1300 986 386 (Toll Free)
EdgeOne hotline
+852 300 80699
More local hotlines coming soon