TableauServerUrls.Url_AppendFileUploadChunk C# (CSharp) Method

Url_AppendFileUploadChunk() public method

The URL to start a upload
public Url_AppendFileUploadChunk ( TableauServerSignIn, logInInfo, string uploadSession ) : string
logInInfo TableauServerSignIn,
uploadSession string
return string
    public string Url_AppendFileUploadChunk(TableauServerSignIn logInInfo, string uploadSession)
    {
        string workingText = _urlAppendUploadChunkTemplate.Replace("{{iwsSiteId}}", logInInfo.SiteId);
        workingText = workingText.Replace("{{iwsUploadSession}}", uploadSession);
        ValidateTemplateReplaceComplete(workingText);

        return workingText;
    }

Usage Example

Beispiel #1
0
    /// <summary>
    /// Uploads a single chunk
    /// </summary>
    /// <param name="uploadSessionId"></param>
    private void UploadSingleChunk(string uploadSessionId, byte [] uploadDataBuffer, int numBytes)
    {
        var urlAppendChunk = _onlineUrls.Url_AppendFileUploadChunk(_onlineSession, uploadSessionId);

        var uploadChunkAsMime = new MimeWriterFileUploadChunk(uploadDataBuffer, numBytes);
        var webRequest        = this.CreateAndSendMimeLoggedInRequest(urlAppendChunk, "PUT", uploadChunkAsMime); //NOTE: This command requires a PUT not a GET
        var response          = this.GetWebReponseLogErrors(webRequest, "upload file chunk");

        using (response)
        {
            var xmlDoc = GetWebResponseAsXml(response);

            //Get all the workbook nodes
            var nsManager       = XmlHelper.CreateTableauXmlNamespaceManager("iwsOnline");
            var chunkUploadXml  = xmlDoc.SelectSingleNode("//iwsOnline:fileUpload", nsManager);
            var verifySessionId = chunkUploadXml.Attributes["uploadSessionId"].Value;
            var fileSizeMB      = chunkUploadXml.Attributes["fileSize"].Value;

            if (verifySessionId != uploadSessionId)
            {
                this.StatusLog.AddError("Upload sessions do not match! " + uploadSessionId + "/" + verifySessionId);
            }

            //Log verbose status
            this.StatusLog.AddStatus("Upload chunk status " + verifySessionId + " / " + fileSizeMB + " MB", -10);
        }
    }