/// <summary>
        /// Finalizes an upload
        /// </summary>
        /// <param name="query">Instance with necessary information to Finalize Upload</param>
        /// <returns>Task with <see cref="FinalizeResponse"/> information</returns>
        private Task <FinalizeResponse> FinalizeUploadAsync(FinalizeUploadQuery query)
        {
            query.S3Filename = $"{query.S3Filename}/p{query.Chunks}";

            var request = new ApiRequest <FinalizeResponse>
            {
                Path       = $"/api/v4/upload/{query.UploadId}/",
                HTTPMethod = HttpMethod.Post,
                Query      = query
            };

            return(_requestSender.SendRequestAsync(request));
        }
Beispiel #2
0
        /// <summary>
        /// Finalizes an upload using <see cref="UploadRequest"/>.
        /// </summary>
        /// <param name="uploadRequest">Upload request information</param>
        /// <param name="chunkNumber">chunk number</param>
        /// <returns>Task with <see cref="FinalizeResponse"/> information</returns>
        private async Task <FinalizeResponse> FinalizeUploadAsync(UploadRequest uploadRequest, uint chunkNumber)
        {
            var query = new FinalizeUploadQuery
            {
                TargetId   = uploadRequest.S3File.TargetId,
                UploadId   = uploadRequest.S3File.UploadId,
                S3Filename = $"{uploadRequest.S3Filename}/p{chunkNumber}",
                Chunks     = chunkNumber.ToString()
            };
            var request = new ApiRequest <FinalizeResponse>
            {
                Path       = $"/api/v4/upload/{query.UploadId}/",
                HTTPMethod = HttpMethod.Post,
                Query      = query
            };

            return(await _requestSender.SendRequestAsync(request).ConfigureAwait(false));
        }