/// <summary>
        /// 查询App列表
        /// </summary>
        /// <param name="startAppName">起始App名称</param>
        /// <param name="limit">每次查询时返回的App数量</param>
        /// <returns></returns>
        public static DescribeAppListResult DescribeAppList(string startAppName, int?limit)
        {
            DescribeAppListResult response = null;
            var dic     = new DISIngestionClient();
            var request = new DescribeAppListRequest();

            if (!string.IsNullOrWhiteSpace(startAppName))
            {
                //从该App开始返回App列表,返回的App列表不包括此App名称
                request.StartAppName = startAppName;
            }

            //单次请求返回App列表的最大数量
            if (limit != null)
            {
                request.Limit = limit.Value;
            }
            else
            {
                request.Limit = 10;
            }

            response = dic.DescribeAppList(request);
            return(response);
        }
        public static void Main(string[] args)
        {
            string streamName = "streamName";
            //string streamName = "dis_file_test";
            const string shardId = "shardId-0000000000";
            string       appName = "testAppName";

            #region MyRegion
            //创建通道
            try
            {
                DISClient.CreateStream(streamName, 1);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //上传数据
            try
            {
                DISClient.RunProducerDemo(streamName, shardId);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //下载数据
            try
            {
                DISClient.RunConsumerDemo(streamName, shardId);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //同步上传小文件
            try
            {
                int result = DISClient.UploadFileDemo("dis_file_test", @"C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg");
                if (result == 0)
                {
                    Console.WriteLine("Success.");
                }
                else
                {
                    Console.WriteLine("Fail.");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //异步上传小文件
            try
            {
                var dic = new DISAsync();
                PutRecordsRequest putRecordsRequest = new PutRecordsRequest();
                putRecordsRequest.StreamName = "dis_file_test";
                putRecordsRequest.FileName   = @"thisisshawnfolder/2018/Penguins1110.jpg";
                putRecordsRequest.FilePath   = @"C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg";
                var taskResult = dic.PutFilesAsync(putRecordsRequest);

                if (taskResult.GetAwaiter().GetResult() == 0)
                {
                    Console.WriteLine("Success.");
                }
                else
                {
                    Console.WriteLine("Fail.");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //查询通道列表
            try
            {
                DISClient.DescribeStreamList(null, 100);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //查询通道详情
            try
            {
                DISClient.DescribeStream(streamName, null, 100);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //获取数据游标
            try
            {
                DISClient.GetCursorDemo(streamName, shardId);
            }
            catch (Exception e)
            {
                Console.Out.WriteLine(e.Message);
            }

            //创建APP
            try
            {
                ResponseResult response = DISClient.CreateAPPDemo(appName);
                Console.Out.WriteLine(response);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //查询APP列表
            try
            {
                DescribeAppListResult response = DISClient.DescribeAppList("", null);
                var reqJson = JsonConvert.SerializeObject(response);
                Console.WriteLine(reqJson);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //查询APP详情
            try
            {
                DISClient.DescribeApp("testAppName");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //新增Checkpoint
            try
            {
                DISClient.AddCheckPointDemo(streamName, appName);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //查询Checkpoint
            try
            {
                DISClient.GetCheckPointDemo(streamName, appName);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //变更分区数量
            //Custom file stream is not suitable for operating.
            try
            {
                DISClient.UpdatePartitionCount(streamName, 1);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //添加OBS转储服务
            try
            {
                DISClient.CreateTransferTaskWithOBS(streamName);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //添加DLI转储任务
            try
            {
                DISClient.CreateTransferTaskWithDLI(streamName);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //查询通道监控信息
            try
            {
                DISClient.GetStreamMetricInfo(streamName, "total_put_bytes_per_stream", DISClient.GetTimeStamp() - 3 * 24 * 60 * 60, DISClient.GetTimeStamp());
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //查询分区监控信息
            try
            {
                DISClient.GetPartitionMetricInfo(streamName, "0", "total_get_records_per_partition", DISClient.GetTimeStamp() - 3 * 24 * 60 * 60, DISClient.GetTimeStamp());
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //查询转储任务列表
            try
            {
                DISClient.GetStreamTransferTaskList(streamName);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //查询转储任务详情
            try
            {
                DISClient.GetStreamTransferTaskDetail(streamName, "task_1234");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //获取流消费信息
            try
            {
                DISClient.GetStreamConsumingInfo(streamName, appName, "", null);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //删除Checkpoint
            try
            {
                DISClient.DeleteCheckpoint(streamName, appName, "0", "LAST_READ");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //删除APP
            try
            {
                ResponseResult response = DISClient.DeleteAPPDemo(appName);
                Console.Out.WriteLine(response);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //删除转储任务
            try
            {
                DISClient.DeleteTransferTask(streamName, "task_1234");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //删除通道
            try
            {
                DISClient.DeleteStream(streamName);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            #endregion
        }