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); }
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()); }