public async Task RefreshDirsTest()
        {
            string[] dirs =
            {
                $"http://{Domain}/images1/",
                $"http://{Domain}/images2/"
            };

            var mac     = new Mac(AccessKey, SecretKey);
            var manager = new CdnManager(mac);
            var ret     = await manager.RefreshDirs(dirs);

            if (ret.Code != (int)HttpCode.OK)
            {
                Assert.True(false, ret.ToString());
            }

            Console.WriteLine(ret.Result.Code);
            Console.WriteLine(ret.Result.Error);
            Console.WriteLine(ret.Result.DirQuotaDay);
            Console.WriteLine(ret.Result.DirSurplusDay);
            Console.WriteLine(ret.Result.RequestId);
            if (ret.Result.InvalidDirs != null)
            {
                foreach (var dir in ret.Result.InvalidDirs)
                {
                    Console.WriteLine(dir);
                }
            }
        }
Example #2
0
        public void RefreshDirsTest()
        {
            string[] dirs =
            {
                string.Format("http://{0}/images1/", Domain),
                string.Format("http://{0}/images2/", Domain)
            };

            Mac           mac     = new Mac(AccessKey, SecretKey);
            CdnManager    manager = new CdnManager(mac);
            RefreshResult ret     = manager.RefreshDirs(dirs);

            if (ret.Code != (int)HttpCode.OK)
            {
                Assert.Fail(ret.ToString());
            }
            Console.WriteLine(ret.Result.Code);
            Console.WriteLine(ret.Result.Error);
            Console.WriteLine(ret.Result.DirQuotaDay);
            Console.WriteLine(ret.Result.DirSurplusDay);
            Console.WriteLine(ret.Result.RequestId);
            if (ret.Result.InvalidDirs != null)
            {
                foreach (string dir in ret.Result.InvalidDirs)
                {
                    Console.WriteLine(dir);
                }
            }
        }
Example #3
0
        private Azure(RestClient restClient, string subscriptionId, string tenantId, IAuthenticated authenticated)
        {
            resourceManager          = ResourceManager.Fluent.ResourceManager.Authenticate(restClient).WithSubscription(subscriptionId);
            storageManager           = StorageManager.Authenticate(restClient, subscriptionId);
            computeManager           = ComputeManager.Authenticate(restClient, subscriptionId);
            networkManager           = NetworkManager.Authenticate(restClient, subscriptionId);
            batchManager             = BatchManager.Authenticate(restClient, subscriptionId);
            keyVaultManager          = KeyVaultManager.Authenticate(restClient, subscriptionId, tenantId);
            trafficManager           = TrafficManager.Fluent.TrafficManager.Authenticate(restClient, subscriptionId);
            dnsZoneManager           = DnsZoneManager.Authenticate(restClient, subscriptionId);
            sqlManager               = SqlManager.Authenticate(restClient, subscriptionId);
            redisManager             = RedisManager.Authenticate(restClient, subscriptionId);
            cdnManager               = CdnManager.Authenticate(restClient, subscriptionId);
            appServiceManager        = AppServiceManager.Authenticate(restClient, subscriptionId, tenantId);
            searchManager            = SearchManager.Authenticate(restClient, subscriptionId);
            serviceBusManager        = ServiceBusManager.Authenticate(restClient, subscriptionId);
            containerInstanceManager = ContainerInstanceManager.Authenticate(restClient, subscriptionId);
            registryManager          = RegistryManager.Authenticate(restClient, subscriptionId);
            containerServiceManager  = ContainerServiceManager.Authenticate(restClient, subscriptionId);
            cosmosDBManager          = CosmosDBManager.Authenticate(restClient, subscriptionId);
            authorizationManager     = AuthorizationManager.Authenticate(restClient, subscriptionId);
            msiManager               = MsiManager.Authenticate(restClient, subscriptionId);
            batchAIManager           = BatchAIManager.Authenticate(restClient, subscriptionId);
            monitorManager           = MonitorManager.Authenticate(restClient, subscriptionId);
            eventHubManager          = EventHubManager.Authenticate(restClient, subscriptionId);

            SubscriptionId     = subscriptionId;
            this.authenticated = authenticated;
        }
Example #4
0
        public void RefreshUrlsTest()
        {
            string[] urls =
            {
                string.Format("http://{0}/images/1.png", Domain),
                string.Format("http://{0}/images/2.png", Domain)
            };

            Mac           mac     = new Mac(AccessKey, SecretKey);
            CdnManager    manager = new CdnManager(mac);
            RefreshResult ret     = manager.RefreshUrls(urls);

            if (ret.Code != (int)HttpCode.OK)
            {
                Assert.Fail(ret.ToString());
            }
            Console.WriteLine(ret.Result.Code);
            Console.WriteLine(ret.Result.Error);
            Console.WriteLine(ret.Result.UrlQuotaDay);
            Console.WriteLine(ret.Result.UrlSurplusDay);
            Console.WriteLine(ret.Result.RequestId);
            if (ret.Result.InvalidUrls != null)
            {
                foreach (string url in ret.Result.InvalidUrls)
                {
                    Console.WriteLine(url);
                }
            }
        }
        public static bool RefreshDirs(Mac mac, string[] urls)
        {
            CdnManager cdnMgr = new CdnManager(mac);
            var        result = cdnMgr.RefreshDirs(urls);

            return(result.Code == 200);
        }
        private static async Task UploadQiniuAsync()
        {
            var accessKey = Environment.GetEnvironmentVariable("ak");
            var secretKey = Environment.GetEnvironmentVariable("sk");

            if (string.IsNullOrEmpty(accessKey) || string.IsNullOrEmpty(secretKey))
            {
                return;
            }
            var          mac       = new Mac(accessKey, secretKey);
            const string bucket    = "langpack";
            var          putPolicy = new PutPolicy
            {
                Scope = bucket
            };
            var key = "Minecraft-Mod-Language-Modpack.zip";

            putPolicy.SetExpires(120);
            var token         = Auth.CreateUploadToken(mac, putPolicy.ToJsonString());
            var uploadManager = new UploadManager(new Config());
            var result        = await uploadManager.UploadFile(@"./Minecraft-Mod-Language-Modpack.zip",
                                                               "Minecraft-Mod-Language-Modpack.zip", token, new PutExtra());

            Trace.Assert(result.RefInfo["key"] == key);
            Trace.Assert(result.RefInfo["hash"] == ETag.CalcHash(@"./Minecraft-Mod-Language-Modpack.zip"));
            Console.WriteLine(result.Text);
            var cdnManager    = new CdnManager(mac);
            var refreshResult = await cdnManager.RefreshUrls(new[]
                                                             { "http://downloader.meitangdehulu.com/Minecraft-Mod-Language-Modpack.zip" });

            Console.WriteLine(refreshResult.Result);
        }
        public async Task RefreshUrlsTest()
        {
            string[] urls =
            {
                $"http://{Domain}/images/1.png",
                $"http://{Domain}/images/2.png"
            };

            var mac     = new Mac(AccessKey, SecretKey);
            var manager = new CdnManager(mac);
            var ret     = await manager.RefreshUrls(urls);

            if (ret.Code != (int)HttpCode.OK)
            {
                Assert.True(false, ret.ToString());
            }

            Console.WriteLine(ret.Result.Code);
            Console.WriteLine(ret.Result.Error);
            Console.WriteLine(ret.Result.UrlQuotaDay);
            Console.WriteLine(ret.Result.UrlSurplusDay);
            Console.WriteLine(ret.Result.RequestId);
            if (ret.Result.InvalidUrls != null)
            {
                foreach (var url in ret.Result.InvalidUrls)
                {
                    Console.WriteLine(url);
                }
            }
        }
Example #8
0
 public static ICdnManager CreateCdnManager()
 {
     return(CreateMockedManager(c => CdnManager
                                .Configure()
                                .WithDelegatingHandlers(GetHandlers())
                                .WithLogLevel(HttpLoggingDelegatingHandler.Level.BodyAndHeaders)
                                .Authenticate(c, c.DefaultSubscriptionId)));
 }
Example #9
0
        public async Task PrefetchTest()
        {
            Mac        mac    = new Mac(AccessKey, SecretKey);
            CdnManager target = new CdnManager(mac);

            string[] urls = new string[] { TestURL1, TestURL2 };

            PrefetchResult result = await target.PrefetchUrlsAsync(urls);

            Assert.AreNotEqual((int)HttpCode.USER_EXCEPTION, result.RefCode);
        }
        public void CreateTimestampAntiLeechUrlTest()
        {
            const string host            = "http://qnls.example.com";
            const string fileName        = "hello/6000694.ls";
            const string query           = "";
            const int    expireInSeconds = 3600;
            const string encryptKey      = "xxx";
            var          finalUrl        = CdnManager.CreateTimestampAntiLeechUrl(host, fileName, query, encryptKey, expireInSeconds);

            Console.WriteLine(finalUrl);
        }
Example #11
0
        /// <summary>
        /// 文件预取
        /// </summary>
        public static void cdnPrefetch()
        {
            Mac        mac       = new Mac(Settings.AccessKey, Settings.SecretKey);
            CdnManager fusionMgr = new CdnManager(mac);

            string[]        urls    = new string[] { "http://yourdomain.clouddn.com/somefile.php" };
            PrefetchRequest request = new PrefetchRequest(urls);
            PrefetchResult  result  = fusionMgr.PrefetchUrls(request);

            Console.WriteLine(result);
        }
Example #12
0
        public void RefreshTest()
        {
            Mac        mac    = new Mac(AccessKey, SecretKey);
            CdnManager target = new CdnManager(mac);

            string[] urls = new string[] { TestURL1, TestURL2 };
            //string[] dirs = new string[] { "" };
            string[]      dirs   = null;
            RefreshResult result = target.RefreshUrlsAndDirs(urls, dirs);

            //Assert.AreEqual((int)HttpCode.OK, result.Code);
            Assert.AreNotEqual((int)HttpCode.USER_EXCEPTION, result.Code);
        }
Example #13
0
        /// <summary>
        /// 日志查询
        /// </summary>
        public static void cdnLogList()
        {
            Mac        mac       = new Mac(Settings.AccessKey, Settings.SecretKey);
            CdnManager fusionMgr = new CdnManager(mac);

            LogListRequest request = new LogListRequest();

            request.Day     = "2016-09-01";      // date:which-day
            request.Domains = "DOMAIN1;DOMAIN2"; // domains
            LogListResult result = fusionMgr.GetCdnLogList(request);

            Console.WriteLine(result);
        }
Example #14
0
        public void CreateAnitleechUrlTest()
        {
            Mac        mac    = new Mac(AccessKey, SecretKey);
            CdnManager target = new CdnManager(mac);

            string qiniuKey        = "12345678";
            int    expireInSeconds = 600;

            TimestampAntiLeechUrlRequest req = new TimestampAntiLeechUrlRequest(TestURL2, qiniuKey, expireInSeconds);

            string result = target.CreateTimestampAntiLeechUrl(req);

            Assert.IsNotNull(result);
        }
Example #15
0
        public async Task GetFluxDataTest()
        {
            Mac        mac    = new Mac(AccessKey, SecretKey);
            CdnManager target = new CdnManager(mac);

            string[] domains = new string[] { TestDomain };
            string   start   = "2017-01-01";
            string   end     = "2017-01-01";
            string   granu   = "day";

            FluxResult result = await target.GetFluxDataAsync(domains, start, end, granu);

            Assert.AreEqual((int)HttpCode.OK, result.Code);
        }
Example #16
0
        public async Task GetBandwidthDataTest()
        {
            Mac        mac    = new Mac(AccessKey, SecretKey);
            CdnManager target = new CdnManager(mac);

            string[] domains = new string[] { TestDomain };
            string   start   = "2017-01-01";
            string   end     = "2017-01-01";
            string   granu   = "day";

            BandwidthResult result = await target.GetBandwidthDataAsync(domains, start, end, granu);

            Assert.AreNotEqual((int)HttpCode.USER_EXCEPTION, result.RefCode);
        }
Example #17
0
        /// <summary>
        /// 缓存刷新
        /// </summary>
        private void CdnRefresh()
        {
            // 这个示例单独使用了一个Settings类,其中包含AccessKey和SecretKey
            // 实际应用中,请自行设置您的AccessKey和SecretKey
            Mac        mac    = new Mac(AppCode.AK, AppCode.SK);
            CdnManager cdnMgr = new CdnManager(mac);

            string[] dirs   = new string[] { "http://omt3z8gfa.bkt.clouddn.com/" };
            var      result = cdnMgr.RefreshDirs(dirs);
            // 或者使用下面的方法
            //RefreshRequest request = new RefreshRequest();
            //request.AddDirs(dirs);
            //var result = cdnMgr.RefreshUrlsAndDirs(request);
        }
Example #18
0
        public void GetFluxDataTest()
        {
            Mac        mac     = new Mac(AccessKey, SecretKey);
            CdnManager manager = new CdnManager(mac);

            string[] domains = new string[] { Domain };
            string   start   = "2017-08-01";
            string   end     = "2017-08-10";
            string   granu   = "day";

            FluxResult ret = manager.GetFluxData(domains, start, end, granu);

            if (ret.Code != (int)HttpCode.OK)
            {
                Assert.Fail(ret.ToString());
            }

            foreach (string domain in domains)
            {
                Console.WriteLine("flux data of domain: " + domain);
                foreach (string t in ret.Result.Time)
                {
                    Console.Write(t + "\t");
                }
                Console.WriteLine();
                if (ret.Result.Data.ContainsKey(domain))
                {
                    if (ret.Result.Data[domain].China != null)
                    {
                        Console.WriteLine("China:");
                        foreach (UInt64 v in ret.Result.Data[domain].China)
                        {
                            Console.Write(v + "\t");
                        }
                        Console.WriteLine();
                    }


                    if (ret.Result.Data[domain].Oversea != null)
                    {
                        Console.WriteLine("Oversea:");
                        foreach (int v in ret.Result.Data[domain].Oversea)
                        {
                            Console.Write(v + "\t");
                        }
                        Console.WriteLine();
                    }
                }
            }
        }
        public async Task GetBandwidthDataTest()
        {
            var mac     = new Mac(AccessKey, SecretKey);
            var manager = new CdnManager(mac);

            var domains = new[] { Domain };
            var start   = "2017-08-01";
            var end     = "2017-08-10";
            var granu   = "day";

            var ret = await manager.GetBandwidthData(domains, start, end, granu);

            if (ret.Code != (int)HttpCode.OK)
            {
                Assert.True(false, ret.ToString());
            }

            foreach (var domain in domains)
            {
                Console.WriteLine("bandwidth data of domain: " + domain);
                if (ret.Result.Time != null)
                {
                    Console.WriteLine(string.Join("\t", ret.Result.Time));
                }
                if (ret.Result.Data.ContainsKey(domain))
                {
                    if (ret.Result.Data[domain].China != null)
                    {
                        Console.WriteLine("China:");
                        foreach (var v in ret.Result.Data[domain].China)
                        {
                            Console.Write(v + "\t");
                        }
                        Console.WriteLine();
                    }


                    if (ret.Result.Data[domain].Oversea != null)
                    {
                        Console.WriteLine("Oversea:");
                        foreach (var v in ret.Result.Data[domain].Oversea)
                        {
                            Console.Write(v + "\t");
                        }
                        Console.WriteLine();
                    }
                }
            }
        }
        private static async Task UploadQiniuAsync()
        {
            var accessKey = Environment.GetEnvironmentVariable("ak");
            var secretKey = Environment.GetEnvironmentVariable("sk");

            if (string.IsNullOrEmpty(accessKey) || string.IsNullOrEmpty(secretKey))
            {
                return;
            }
            var          mac       = new Mac(accessKey, secretKey);
            const string key       = "Minecraft-Mod-Language-Modpack.zip";
            const string filePath  = @"./Minecraft-Mod-Language-Modpack.zip";
            const string bucket    = "langpack";
            var          putPolicy = new PutPolicy {
                Scope = bucket + ":" + key
            };

            putPolicy.SetExpires(120);
            var token  = Auth.CreateUploadToken(mac, putPolicy.ToJsonString());
            var config = new Config
            {
                Zone          = Zone.ZoneCnSouth,
                UseHttps      = true,
                UseCdnDomains = true,
                ChunkSize     = ChunkUnit.U512K
            };
            var target = new FormUploader(config);
            var result = await target.UploadFile(filePath, key, token, null);

            Console.WriteLine("form upload result: " + result.Text);
            var manager = new CdnManager(mac);

            string[] urls = { "http://downloader.meitangdehulu.com/Minecraft-Mod-Language-Modpack.zip" };
            var      ret  = await manager.RefreshUrls(urls);

            if (ret.Code != (int)HttpCode.OK)
            {
                Console.WriteLine(ret.ToString());
            }
            Console.WriteLine(ret.Result.Code);
            Console.WriteLine(ret.Result.Error);
            if (ret.Result.InvalidUrls != null)
            {
                foreach (var url in ret.Result.InvalidUrls)
                {
                    Console.WriteLine(url);
                }
            }
        }
Example #21
0
        /// <summary>
        /// 带宽
        /// </summary>
        public static void cdnBandwidth()
        {
            Mac        mac       = new Mac(Settings.AccessKey, Settings.SecretKey);
            CdnManager fusionMgr = new CdnManager(mac);

            BandwidthRequest request = new BandwidthRequest();

            request.StartDate   = "2016-09-01";
            request.EndDate     = "2016-09-20";
            request.Granularity = "day";
            request.Domains     = "yourdomain.bkt.clouddn.com;yourdomain2;yourdomain3";
            BandwidthResult result = fusionMgr.GetBandwidthData(request);

            Console.WriteLine(result);
        }
Example #22
0
        /// <summary>
        /// 流量
        /// </summary>
        public static void cdnFlux()
        {
            Mac        mac       = new Mac(Settings.AccessKey, Settings.SecretKey);
            CdnManager fusionMgr = new CdnManager(mac);

            FluxRequest request = new FluxRequest();

            request.StartDate   = "START_DATE";
            request.EndDate     = "END_DATE";
            request.Granularity = "GRANU";
            request.Domains     = "DOMAIN1;DOMAIN2";
            FluxResult result = fusionMgr.GetFluxData(request);

            Console.WriteLine(result);
        }
Example #23
0
        public void GetFluxDataTest()
        {
            Mac        mac    = new Mac(AccessKey, SecretKey);
            CdnManager target = new CdnManager(mac);

            string[] domains = new string[] { TestDomain };
            string   start   = "2017-01-01";
            string   end     = "2017-01-01";
            string   granu   = "day";

            FluxResult result = target.GetFluxData(domains, start, end, granu);

            //Assert.AreEqual((int)HttpCode.OK, result.Code);
            Assert.AreNotEqual((int)HttpCode.USER_EXCEPTION, result.RefCode);
        }
Example #24
0
        /// <summary>
        /// 缓存刷新
        /// </summary>
        public static void cdnRefresh()
        {
            Mac        mac       = new Mac(Settings.AccessKey, Settings.SecretKey);
            CdnManager fusionMgr = new CdnManager(mac);

            string[]       urls    = new string[] { "http://yourdomain.bkt.clouddn.com/somefile.php" };
            string[]       dirs    = new string[] { "http://yourdomain.bkt.clouddn.com/" };
            RefreshRequest request = new RefreshRequest();

            request.AddUrls(urls);
            request.AddDirs(dirs);

            var result = fusionMgr.RefreshUrlsAndDirs(request);

            Console.WriteLine(result);
        }
Example #25
0
        public void CreateAnitleechUrlTest2()
        {
            Mac        mac    = new Mac(AccessKey, SecretKey);
            CdnManager target = new CdnManager(mac);

            string qiniuKey        = "12345678";
            int    expireInSeconds = 600;

            string host, path, file, query;

            UrlHelper.UrlSplit(TestURL2, out host, out path, out file, out query);

            string result = target.CreateTimestampAntiLeechUrl(host, path, file, query, qiniuKey, expireInSeconds);

            Assert.IsNotNull(result);
        }
Example #26
0
        /// <summary>
        /// 时间戳防盗链
        /// </summary>
        public void hotLink()
        {
            Mac        mac       = new Mac(Settings.AccessKey, Settings.SecretKey);
            CdnManager fusionMgr = new CdnManager(mac);

            TimestampAntiLeechUrlRequest request = new TimestampAntiLeechUrlRequest();

            request.Host  = "http://your-host";
            request.Path  = "/path/";
            request.File  = "file-name";
            request.Query = "?version=1.1";
            request.SetLinkExpire(600);

            //request.RawUrl

            string prefLink = fusionMgr.CreateTimestampAntiLeechUrl(request);

            Console.WriteLine(prefLink);
        }
        public static bool PrefetchUrls(Mac mac, string[] urls, out string Result)
        {
            StringBuilder sb     = new StringBuilder();
            CdnManager    cdnMgr = new CdnManager(mac);
            var           result = cdnMgr.PrefetchUrls(urls);


            sb.AppendLine($"Code:{result.Result.Code}");
            if (result.Result.InvalidUrls != null)
            {
                sb.AppendLine($"InvalidUrls:");
                foreach (string url in result.Result.InvalidUrls)
                {
                    sb.Append(url + " ");
                }
            }

            if (result.Code == 200)
            {
                if (!string.IsNullOrWhiteSpace(result.Result.RequestId))
                {
                    sb.AppendLine($"RequestId:{result.Result.RequestId}");
                }
                sb.AppendLine($"每日的预取 url 限额quotaDay:{result.Result.QuotaDay}");
                sb.AppendLine($"剩余的预取 url 限额surplusDay:{result.Result.SurplusDay}");

                Result = sb.ToString();
                return(true);
            }

            if (!string.IsNullOrWhiteSpace(result.Result.Error))
            {
                sb.AppendLine($"Error:{result.Result.Error}");
            }

            Result = sb.ToString();
            return(false);


            // cdnMgr.RefreshUrlsAndDirs()
        }
Example #28
0
        private bool TryInit()
        {
            if (cdnManager != null)
            {
                return(true);
            }

            string ak = AppSettings.Default.ACCESS_KEY;
            string sk = AppSettings.Default.SECRET_KEY;

            if (string.IsNullOrEmpty(ak) || ak.Length < 40 ||
                string.IsNullOrEmpty(sk) || sk.Length < 40)
            {
                return(false);
            }
            else
            {
                Mac mac = new Mac(ak, sk);
                cdnManager = new CdnManager(mac);
                return(true);
            }
        }
        public async Task GetCdnLogListTest()
        {
            var mac     = new Mac(AccessKey, SecretKey);
            var manager = new CdnManager(mac);
            var day     = "2017-08-10";
            var domains = new[] { Domain };
            var ret     = await manager.GetCdnLogList(domains, day);

            if (ret.Code != (int)HttpCode.OK)
            {
                Assert.True(false, ret.ToString());
            }

            foreach (var domain in ret.Result.Data.Keys)
            {
                Console.WriteLine("log list for domain: " + domain);
                foreach (var data in ret.Result.Data[domain])
                {
                    Console.WriteLine($"{data.Name}\t{data.Size}\t{data.Mtime}\t{data.Url}");
                }
            }
        }
Example #30
0
        public void GetCdnLogListTest()
        {
            Mac        mac     = new Mac(AccessKey, SecretKey);
            CdnManager manager = new CdnManager(mac);
            string     day     = "2017-08-10";

            string[]      domains = new string[] { Domain };
            LogListResult ret     = manager.GetCdnLogList(domains, day);

            if (ret.Code != (int)HttpCode.OK)
            {
                Assert.Fail(ret.ToString());
            }

            foreach (string domain in ret.Result.Data.Keys)
            {
                Console.WriteLine("log list for domain: " + domain);
                foreach (LogData data in ret.Result.Data[domain])
                {
                    Console.WriteLine(data.Name + "\t" + data.Size + "\t" + data.Mtime + "\t" + data.Url);
                }
            }
        }