Ejemplo n.º 1
0
        public static string GetAllStreams()
        {
            /*
             * /config-media-live/v1/live/{domainName}/stream
             * /config-media-live/v1/live/{domainName}/stream/{streamID}
             */
            var accessToken = ConfigurationManager.AppSettings["akamaiAccessToken"];
            var clientToken = ConfigurationManager.AppSettings["akamaiClientToken"];
            var secret      = ConfigurationManager.AppSettings["akamaiSecret"];
            var signer      = new EdgeGridV1Signer();
            var credential  = new ClientCredential(clientToken, accessToken, secret);
            var uri         = new Uri(ConfigurationManager.AppSettings["akamaiBaseUrl"]);
            var request     = WebRequest.Create(uri);

            signer.Sign(request, credential);
            using (var result = signer.Execute(request, credential))
            {
                using (result)
                {
                    using (var reader = new StreamReader(result))
                    {
                        return(reader.ReadToEnd());
                    }
                }
            }
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            string host         = "";
            string clientToken  = "";
            string accessToken  = "";
            string clientSecret = "";

            try
            {
                // Form the request
                ServicePointManager.Expect100Continue = false;

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host + "/ccu/v2/queues/default");
                request.Method = "POST";


                string postData = string.Empty;

                byte[] byteArray = Encoding.Default.GetBytes(postData);
                request.ContentType   = "application/json";
                request.ContentLength = byteArray.Length;

                // Sign the request
                using (Stream bodyStream = new MemoryStream(byteArray))
                {
                    EdgeGridV1Signer signer     = new EdgeGridV1Signer();
                    ClientCredential credential = new ClientCredential(clientToken, accessToken, clientSecret);
                    signer.Sign(request, credential, bodyStream);
                }

                // Write the payload
                using (Stream dataStream = request.GetRequestStream())
                {
                    dataStream.Write(byteArray, 0, byteArray.Length);
                    dataStream.Close();
                }

                // Get the response
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    if (response.StatusCode != HttpStatusCode.OK && response.StatusCode != HttpStatusCode.Created)
                    {
                        Trace.TraceError("Error flushing Akamai cache {0} {1}", response.StatusDescription, postData);
                    }
                    else
                    {
                        Trace.TraceInformation("Successfully flushed " + postData);
                    }

                    response.Close();
                }
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
            }
        }
        public void SignTest()
        {
            string           clientToken = "clientToken";
            string           accessToken = "accessToken";
            string           secret      = "secret-shh";
            ClientCredential credential  = new ClientCredential(clientToken, accessToken, secret);

            //DateTime timestamp = new DateTime(1918, 11, 11, 11, 00, 00, DateTimeKind.Utc);
            EdgeGridV1Signer signer = new EdgeGridV1Signer();

            Uri uri = new Uri("http://www.example.com/");

            HttpWebRequestTest request = new HttpWebRequestTest(uri);

            signer.Sign(request, credential);

            Assert.AreEqual(request.Headers.Count, 1);
            Assert.IsNotNull(request.Headers.Get("Authorization"));

            Assert.IsTrue(Regex.IsMatch(request.Headers.Get("Authorization"),
                                        @"EG1-HMAC-SHA256 client_token=clientToken;access_token=accessToken;timestamp=\d{8}T\d\d:\d\d:\d\d\+0000;nonce=[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12};signature=[A-Za-z0-9/+]{43}="));
        }
        static void execute(string httpMethod, string apiurl, List <string> headers, string clientToken, string accessToken, string secret, string data, string uploadfile, string outputfile, int?maxBodySize, string contentType, bool verbose = false)
        {
            if (apiurl == null || clientToken == null || accessToken == null || secret == null)
            {
                help();
                return;
            }

            EdgeGridV1Signer signer     = new EdgeGridV1Signer(null, maxBodySize);
            ClientCredential credential = new ClientCredential(clientToken, accessToken, secret);

            Stream uploadStream = null;

            if (uploadfile != null)
            {
                uploadStream = new FileInfo(uploadfile).OpenRead();
            }
            else if (data != null)
            {
                uploadStream = new MemoryStream(data.ToByteArray());
            }

            var uri     = new Uri(apiurl);
            var request = WebRequest.Create(uri);

            foreach (string header in headers)
            {
                request.Headers.Add(header);
            }
            request.Method = httpMethod;

            Stream output = Console.OpenStandardOutput();

            if (outputfile != null)
            {
                output = new FileInfo(outputfile).OpenWrite();
            }

            if (verbose)
            {
                signer.Sign(request, credential, uploadStream);
                Console.WriteLine("Authorization: {0}", request.Headers.Get("Authorization"));
                Console.WriteLine();
            }

            using (var result = signer.Execute(request, credential, uploadStream))
            {
                using (output)
                {
                    using (result)
                    {
                        byte[] buffer    = new byte[1024 * 1024];
                        int    bytesRead = 0;

                        while ((bytesRead = result.Read(buffer, 0, buffer.Length)) != 0)
                        {
                            output.Write(buffer, 0, bytesRead);
                        }
                    }
                }
            }
        }