示例#1
0
        private static async Task <ConvertApiUpload> Upload(Stream fileStream, string fileName)
        {
            HttpResponseMessage responseMessage;

            using (var content = new StreamContent(fileStream))
            {
                content.Headers.ContentType        = new MediaTypeHeaderValue("application/octet-stream");
                content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileNameStar = Path.GetFileName(fileName)
                };

                var url = new UriBuilder(ConvertApi.ApiBaseUri)
                {
                    Path = "/upload",
                };

                responseMessage = await ConvertApi.GetClient().PostAsync(url.Uri, ConvertApiConstants.UploadTimeoutInSeconds, content);
            }

            var result = await responseMessage.Content.ReadAsStringAsync();

            if (responseMessage.StatusCode != HttpStatusCode.OK)
            {
                throw new ConvertApiException(responseMessage.StatusCode, $"Unable to upload file. {responseMessage.ReasonPhrase}", result);
            }

            return(JsonConvert.DeserializeObject <ConvertApiUpload>(result));
        }
        /// <summary>
        /// Delete files from the ConvertAPI server, and if left, they automatically will be deleted after 3 hours.
        /// </summary>
        /// <param name="processedFile">Files to delete.</param>
        /// <returns>Returns deleted files count.</returns>
        public static async Task <int> DeleteFilesAsync(this IEnumerable <ConvertApiFiles> processedFile)
        {
            var httpClient = ConvertApi.GetClient().Client;
            var count      = 0;

            foreach (var file in processedFile)
            {
                var httpResponseMessage = await httpClient.DeleteAsync(file.Url);

                if (httpResponseMessage.StatusCode == HttpStatusCode.OK)
                {
                    count += 1;
                }
            }

            return(count);
        }
示例#3
0
        private static async Task <ConvertApiUpload> Upload(Uri remoteFileUrl)
        {
            var url = new UriBuilder(ConvertApi.ApiBaseUri)
            {
                Path  = "/upload",
                Query = $"url={remoteFileUrl}"
            };

            var responseMessage = await ConvertApi.GetClient().PostAsync(url.Uri, ConvertApiConstants.UploadTimeoutInSeconds, null);

            var result = await responseMessage.Content.ReadAsStringAsync();

            if (responseMessage.StatusCode != HttpStatusCode.OK)
            {
                throw new ConvertApiException(responseMessage.StatusCode, $"Unable to upload file. {responseMessage.ReasonPhrase}", result);
            }

            return(JsonConvert.DeserializeObject <ConvertApiUpload>(result));
        }
        private static async Task <Stream> AsStreamAsync(Uri url)
        {
            var httpResponseMessage = await ConvertApi.GetClient().GetAsync(url, ConvertApiConstants.DownloadTimeoutInSeconds);

            return(await httpResponseMessage.Content.ReadAsStreamAsync());
        }