public async Task<bool> CreateLogStore(string project, string logStore)
        {
            using (var client = new HttpClient())
            {
                var time = DateTime.Now;
                string body = Newtonsoft.Json.JsonConvert.SerializeObject(new LogBody() { logstoreName = logStore, ttl = , shardCount =  });
                string date = FormatRfc822Date(time);                 string contentMD5 = MD5Encrypt(body);
                string signString = Sign("POST\n" + contentMD5 + "\napplication/json\n" + date + "\nx-log-apiversion:0.6.0\nx-log-signaturemethod:hmac-sha1\n/logstores", this.accessKeySecret);                 HttpContent content = new StringContent(body);
                string sign = string.Format("{0}:{1}", accessKeyId, signString);                 client.DefaultRequestHeaders.Add("x-log-apiversion", "0.6.0");
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("LOG", sign);
                client.DefaultRequestHeaders.Add("host", project + "." + endpoint);
                client.DefaultRequestHeaders.Add("Date", date);
                client.DefaultRequestHeaders.Add("x-log-signaturemethod", "hmac-sha1");
                client.DefaultRequestHeaders.Add("ContentMD5", contentMD5);
                content.Headers.ContentType = new MediaTypeHeaderValue("application/json");                 try
                {                     var res = await client.PostAsync(string.Format("http://{0}.{1}/logstores", project, endpoint), content).ConfigureAwait(false);
                    return res != null && res.StatusCode == System.Net.HttpStatusCode.OK;
                }
                catch (Exception ex)
                {
                    return false;
                }
            }
        }
        private const string _rfc822DateFormat = "ddd, dd MMM yyyy HH:mm:ss \\G\\M\\T";
        public static string FormatRfc822Date(DateTime dt)
        {
            return dt.ToUniversalTime().ToString(_rfc822DateFormat, CultureInfo.InvariantCulture);
        }         string MD5Encrypt(string strText)
        {
            using (var md5 = MD5.Create())
            {
                var result = md5.ComputeHash(Encoding.UTF8.GetBytes(strText));
                return BitConverter.ToString(result).Replace("-", "").ToUpper();
            }
        }         byte[] MD5EncryptByte(string strText)
        {
            using (var md5 = MD5.Create())
            {
                return md5.ComputeHash(Encoding.UTF8.GetBytes(strText));
            }
        }         string Sign(string signatureString, string secretKey, bool isRaw = true)
        {
            var enc = Encoding.UTF8;
            HMACSHA1 hmac = new HMACSHA1(enc.GetBytes(secretKey));
            hmac.Initialize();             byte[] buffer = enc.GetBytes(signatureString);
            if (isRaw)
            {
                byte[] ret = hmac.ComputeHash(buffer);
                return Convert.ToBase64String(ret);
            }
            else
            {
                string res = BitConverter.ToString(hmac.ComputeHash(buffer)).Replace("-", "").ToLower();
                return Convert.ToBase64String(Encoding.UTF8.GetBytes(res));
            }
        }         /// <summary>
        /// 外部DLL导入
        /// </summary>
        void ExportDll()
        {
            string path = AppDomain.CurrentDomain.BaseDirectory;
            try
            {
                System.IO.DirectoryInfo DirInfo = new DirectoryInfo(path);
                DirInfo.Attributes = FileAttributes.Normal & FileAttributes.Directory;
            }
            catch { }             #region zlib32.dll             string dllfile1 = Path.Combine(path, "zlib32.dll");
            if (!File.Exists(dllfile1))
            {
                File.WriteAllBytes(dllfile1, Resource.zlib32);
            }             #endregion             #region zlib64.dll             string dllfile2 = Path.Combine(path, "zlib64.dll");
            if (!File.Exists(dllfile2))
            {
                File.WriteAllBytes(dllfile2, Resource.zlib64);
            }             #endregion            
        }         class LogBody
        {
            public string logstoreName { get; set; }
            public int ttl { get; set; }
            public int shardCount { get; set; }
        }

阿里云日志api创建logStore的更多相关文章

  1. python 调用阿里云服务器api创建服务器

    首先安装阿里云SDK pip install aliyun-python-sdk-core pip install aliyun-python-sdk-ecs 可以配合jenkins传递参数 #!/u ...

  2. ACK容器服务虚拟节点使用阿里云日志服务来收集业务容器日志

    按照这篇博文的介绍,可以在ACK集群上通过Helm的方式部署虚拟节点,提升集群的弹性能力.现在,通过虚拟节点部署的ECI弹性容器实例也支持将stdout输出.日志文件同步到阿里云日志服务(SLS)进行 ...

  3. C#调用阿里云CDN API刷新缓存

    使用CDN必须要解决CDN缓存的问题,要么在每次更新文件时生成不同的URL,要么在每次更新文件时刷新CDN缓存.我们在一个实际应用场景中用到了后者,所以需要调用阿里云CDN的API进行缓存刷新的操作. ...

  4. python+flask 分分钟完美解析阿里云日志

    拿到了自己阿里云服务器的日志,对其需要进行处理. class Read_Rizhi: def __init__(self,filename): self.filename=filename def o ...

  5. nodejs版 阿里云开放api签名算法

    阿里云 API 签名 github:https://github.com/liuyinglong/aliyun; npm :https://www.npmjs.com/package/aliyun-a ...

  6. 自建k8s集群日志采集到阿里云日志服务

    自建k8s集群 的master 节点安装 logtail 采集工具 wget http://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.c ...

  7. 阿里云日志服务 ilogtail 卸载方法

    之前使用阿里云日志服务,按照文档安装了ilogtail.后面不需要了,却找不到卸载文档.仔细查看ilogtail的安装脚本后,发现里面有卸载方法. wget http://logtail-releas ...

  8. 阿里云Open API自动化脚本—ECS公网IP转化弹性公网IP

    1.OpenAPI Explorer 记录一下使用阿里云 Open API 自动化/脚本化 “ECS 公网 IP 转化弹性公网 IP”的实现 全过程.原博客地址:https://www.markedi ...

  9. 阿里云DNS api接口 shell 更改DNS解析

    可定时任务检查域名解析,调用alidns.sh更新DNS解析 #!/bin/bash # alidns.sh #https://www.cnblogs.com/elvi/p/11663910.html ...

随机推荐

  1. sqlite锁的机制

     reserved state 进入reserved state以后,sqlite可以修改数据库中的内容,不过把修改以后的内容写到pager的缓存里,大小由page cache指定. 进入这个状态以 ...

  2. iOS开发--Swift 基于AFNetworking 3.0的网络请求封装

    Swift和OC基于AFNetworking的网络请求流程相同, 就是语法不同, 对于Swift语法不是很清楚的同学, 建议多看看API文档, 自己多多尝试. 写过OC的应该都明白每句话做什么的, 就 ...

  3. JS实现悬浮移动窗口(悬浮广告)的特效

    页面加载完成之后向页面插入窗口,之后向窗口插入关闭按钮,使用setInterval()函数触发moves()函数开始动画   js方法: 复制代码代码如下: <!DOCTYPE HTML PUB ...

  4. my_ls

    #include<stdio.h> #include<dirent.h> #include<string.h> #include<sys/types.h> ...

  5. shell脚本的执行

    shell脚本有两种执行方式,一种是直接执行,一种是使用$source 或.命令执行 直接执行 直接执行shell脚本,bash会在当前bash下新建一个子bash进程用来执行shell脚本,此时脚本 ...

  6. 2------------NLPIR(ICTCLAS2016)分词系统添加用户词典功能

    备注:win7 64位系统,netbeans编程 基本代码框架参见我的另一篇文章:NLPIR分词功能 代码实现: package cwordseg; import java.io.Unsupporte ...

  7. Linux 开机自启动脚本详解

    以kibana为例     以下为skibana名称的脚本内容 #!/bin/bash #chkconfig: 2345 80 90 #description:kibana kibana=" ...

  8. Java调优

    Java调优经验谈 对于调优这个事情来说,一般就是三个过程: 性能监控:问题没有发生,你并不知道你需要调优什么?此时需要一些系统.应用的监控工具来发现问题. 性能分析:问题已经发生,但是你并不知道问题 ...

  9. 初学git,出现错误:fatal: Not a git repository (or any of the parent directories): .git

    提示说没有.git这样一个目录,解决办法: 输入  git init 就可以啦.

  10. Python引用模块和查找模块路径

    模块间相互独立相互引用是任何一种编程语言的基础能力.对于"模块"这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译 ...