Example #1
0
    private async Task <UploadResponse> UploadUnit(int unit, ResumableUploadDetails resumableUpload)
    {
        var block    = new byte[resumableUpload.UnitSize];
        var unitSize = _fileStream.Read(block, 0, block.Length);
        var unitHash = GetBlockHash(block, unitSize);

        var headers = new Dictionary <string, string>
        {
            { MediaFireApiConstants.ContentTypeHeader, MediaFireApiConstants.ResumableUploadContentTypeValue },
            { MediaFireApiConstants.FileNameHeader, FileName },
            { MediaFireApiConstants.FileSizeHeader, FileLength.ToString() },
            { MediaFireApiConstants.FileHashHeader, FileHash },

            { MediaFireApiConstants.UnitHashHeader, unitHash },
            { MediaFireApiConstants.UnitIdHeader, unit.ToString() },
            { MediaFireApiConstants.UnitSizeHeader, unitSize.ToString() },
        };


        var parameters = new Dictionary <string, object>
        {
            //{MediaFireApiParameters.QuickKey, ""}      ,
            //{MediaFireApiParameters.ActionOnDuplicate, MediaFireActionOnDuplicate.Replace}               ,
            //{MediaFireApiParameters.FolderKey, ""}      ,
            ///etc
        };

        var contentToUpload = new MemoryStream(block, 0, unitSize);



        return(await _agent.PostStreamAsync <UploadResponse>(MediaFireApiUploadMethods.Resumable, contentToUpload, parameters, headers, progress: new Progress <MediaFireOperationProgress>(
                                                                 (s) =>
        {
            Console.Write(".");
        })));
    }