예제 #1
0
        public async Task <VodUploadResponse> Upload(string region, VodUploadRequest req)
        {
            CheckRequest(region, req);

            TencentCloud.Common.Credential cred = new TencentCloud.Common.Credential
            {
                SecretId  = SecretId,
                SecretKey = SecretKey
            };
            VodClient vodClient = new VodClient(cred, region);

            ApplyUploadResponse applyResp = await DoApplyRequest(vodClient, req);

            //Console.WriteLine(AbstractModel.ToJsonString(applyResp));

            await DoUploadAction(applyResp, req);

            CommitUploadResponse commitResp = await DoCommitRequest(vodClient, applyResp);

            //Console.WriteLine(AbstractModel.ToJsonString(commitResp));

            VodUploadResponse rsp = AbstractModel.FromJsonString <VodUploadResponse>(AbstractModel.ToJsonString(commitResp));

            return(rsp);
        }
예제 #2
0
        private async Task <ApplyUploadResponse> DoApplyRequest(VodClient client, VodUploadRequest req)
        {
            req.MediaType = System.IO.Path.GetExtension(req.MediaFilePath).Substring(1);
            req.MediaName = System.IO.Path.GetFileName(req.MediaFilePath);
            if (req.CoverFilePath != null && req.CoverFilePath != "")
            {
                req.CoverType = System.IO.Path.GetExtension(req.CoverFilePath).Substring(1);
            }

            TencentCloudSDKException err = null;

            for (int i = 0; i < retryTime; i++)
            {
                try
                {
                    ApplyUploadResponse rsp = await client.ApplyUpload(req);

                    return(rsp);
                }
                catch (TencentCloudSDKException exception)
                {
                    if (exception.RequestId == "")
                    {
                        err = exception;
                        continue;
                    }
                    throw exception;
                }
            }
            throw err;
        }
예제 #3
0
        private async Task <CommitUploadResponse> DoCommitRequest(VodClient client, ApplyUploadResponse applyResp)
        {
            CommitUploadRequest commitReq = new CommitUploadRequest();

            commitReq.VodSessionKey = applyResp.VodSessionKey;
            TencentCloudSDKException err = null;

            for (int i = 0; i < retryTime; i++)
            {
                try
                {
                    return(await client.CommitUpload(commitReq));
                }
                catch (TencentCloudSDKException exception)
                {
                    if (exception.RequestId == "")
                    {
                        err = exception;
                        continue;
                    }
                    throw exception;
                }
            }
            throw err;
        }