protected override void ProcessRecord() { base.ProcessRecord(); Validation(); var items = OptimizeImageItems; if (FileUrl != null) { items = HelperFunctions.CreateOptimizeImageItems(FileUrl).ToArray(); } MessageAdapter adapter = CreateMessageAdapter(items.Count()); Task.Factory.StartNew(() => { for (int x = 0; x < items.Count(); x++) { if (Wait) { var request = new OptimizeWaitRequest(new Uri(items[x].Path), CreateDataStore(items[x], KeepPath)) { WebP = WebP, Lossy = Lossy, AutoOrient = AutoOrient, SamplingScheme = HelperFunctions.ConvertSamplingScheme(SamplingScheme) }; var task = Client.OptimizeWait(request); adapter.WriteObject(task.Result); } else { var request = new OptimizeRequest(new Uri(items[x].Path), new Uri(CallBackUrl), CreateDataStore(items[x], KeepPath)) { WebP = WebP, Lossy = Lossy, AutoOrient = AutoOrient, SamplingScheme = HelperFunctions.ConvertSamplingScheme(SamplingScheme) }; var task = Client.Optimize(request); adapter.WriteObject(task.Result); } } adapter.Finished = true; }); adapter.Listen(); }
public virtual string Optimize(string imageUrl, string destDirectory) { var request = new OptimizeWaitRequest( new Uri(imageUrl), AppSettings.AwsAccountKey, AppSettings.AwsSecret, AppSettings.S3Bucket, AppSettings.AWSRegion) { S3Store = { Path = destDirectory } }; var response = Client.OptimizeWait(request); if (response.Result.StatusCode != HttpStatusCode.OK) { throw new Exception($"Kraken API Error: {response.Result.Error}"); } return(response.Result.Body.KrakedUrl); }