阿里云日志api创建logStore

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:
复制代码
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 = 1, shardCount = 2 });
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; }
}



本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/p/6027164.html,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
13天前
|
自然语言处理 安全 API
API First:模型驱动的阿里云API保障体系
本文介绍了阿里云在API设计和管理方面的最佳实践。首先,通过API First和模型驱动的方式确保API的安全、稳定和效率。其次,分享了阿里云内部如何使用CloudSpec IDL语言及配套工具保障API质量,并实现自动化生成多语言SDK等工具。接着,描述了API从设计到上线的完整生命周期,包括规范校验、企业级能力接入、测试和发布等环节。最后,展望了未来,强调了持续提升API质量和开源CloudSpec IDL的重要性,以促进社区共建更好的API生态。
|
2天前
|
存储 监控 安全
网络安全视角:从地域到账号的阿里云日志审计实践
日志审计的必要性在于其能够帮助企业和组织落实法律要求,打破信息孤岛和应对安全威胁。选择 SLS 下日志审计应用,一方面是选择国家网络安全专用认证的日志分析产品,另一方面可以快速帮助大型公司统一管理多组地域、多个账号的日志数据。除了在日志服务中存储、查看和分析日志外,还可通过报表分析和告警配置,主动发现潜在的安全威胁,增强云上资产安全。
|
8天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 12 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
21天前
|
存储 监控 安全
网络安全视角:从地域到账号的阿里云日志审计实践
日志审计的必要性在于其能够帮助企业和组织落实法律要求,打破信息孤岛和应对安全威胁。选择 SLS 下日志审计应用,一方面是选择国家网络安全专用认证的日志分析产品,另一方面可以快速帮助大型公司统一管理多组地域、多个账号的日志数据。除了在日志服务中存储、查看和分析日志外,还可通过报表分析和告警配置,主动发现潜在的安全威胁,增强云上资产安全。
|
1月前
|
存储 人工智能 API
(Elasticsearch)使用阿里云 infererence API 及 semantic text 进行向量搜索
本文展示了如何使用阿里云 infererence API 及 semantic text 进行向量搜索。
|
1月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 11 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
1月前
|
存储 数据采集 监控
阿里云DTS踩坑经验分享系列|SLS同步至ClickHouse集群
作为强大的日志服务引擎,SLS 积累了用户海量的数据。为了实现数据的自由流通,DTS 开发了以 SLS 为源的数据同步插件。目前,该插件已经支持将数据从 SLS 同步到 ClickHouse。通过这条高效的同步链路,客户不仅能够利用 SLS 卓越的数据采集和处理能力,还能够充分发挥 ClickHouse 在数据分析和查询性能方面的优势,帮助企业显著提高数据查询速度,同时有效降低存储成本,从而在数据驱动决策和资源优化配置上取得更大成效。
150 9
|
安全 中间件 API
如何创建一个安全的API(一)
本文讲的是如何创建一个安全的API(一),毫无疑问,我们生活的世界正在随着时间的前行联系越来越紧密。无数新服务的出现都在帮助我们去使生活变得更简单,更愉快,而在这些所有变化的背后,服务们在进行组合交流所使用的是一项技术—API驱动架构。
1450 0
|
5天前
|
JSON 前端开发 搜索推荐
关于商品详情 API 接口 JSON 格式返回数据解析的示例
本文介绍商品详情API接口返回的JSON数据解析。最外层为`product`对象,包含商品基本信息(如id、name、price)、分类信息(category)、图片(images)、属性(attributes)、用户评价(reviews)、库存(stock)和卖家信息(seller)。每个字段详细描述了商品的不同方面,帮助开发者准确提取和展示数据。具体结构和字段含义需结合实际业务需求和API文档理解。
|
10天前
|
JSON API 数据格式
京东商品SKU价格接口(Jd.item_get)丨京东API接口指南
京东商品SKU价格接口(Jd.item_get)是京东开放平台提供的API,用于获取商品详细信息及价格。开发者需先注册账号、申请权限并获取密钥,随后通过HTTP请求调用API,传入商品ID等参数,返回JSON格式的商品信息,包括价格、原价等。接口支持GET/POST方式,适用于Python等语言的开发环境。
62 11