Пример #1
0
        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();
        }
Пример #2
0
        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);
        }