调用API接口下载腾讯CDN访问日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

公司使用腾讯cdn为网站静态内容加速,由于业务需求,需要每天下载昨天的日志(因为腾讯方面给出回复,访问日志会有2个小时或以上时间的延迟,所以不建议下载当天日志,所以每天统计前一天的日志以做分析)。因为cdn是由运维来管理,但是这个需求是业务的,如果每天都由运维进行下载,再通过邮件或其他工具发送,可能就显得麻烦。所幸腾讯CDN提供了API接口,因此采用shell脚本调用API进行下载的方式,定期下载日志,这样只要业务人员运行这个脚本就能自行下载日志,解放了运维的工作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash
#########################################################
#This script is to download yesterday's log \
#files in Telent CDN
#writed on 2016-08-11 
#########################################################
Timestamp=` date  +%s`
Nonce=$RANDOM
LastDay=` date  -d  "yesterday"  +%Y%m%d`
Domain=xxxxxxxxxxxxxxxxx       #此处为你需要下载日志的域名
ID=xxxxxxxxxxxxxxxxx           #此处为你在腾讯cdn上的secretId
key=xxxxxxxxxxxxxxxxx          #此处为你在腾讯cdn上的secretKey,可以在腾讯cdn后台生成
SURL= "GETcdn.api.qcloud.com/v2/index.php?Action=GenerateLogList&Nonce=${Nonce}&SecretId=${ID}&Timestamp=${Timestamp}&hostId=xxxxxx"   #hostId为你的域名的id,可通过腾
                           #讯提供的php脚本查看,当然也可以使shell或python\
sigure=` echo  -n $SURL | openssl sha1 -binary -hmac  "${key}"  | base64| sed  's/=/%3D/g;s/+/%2B/g;s/\//%2F/g' `
HTTP_SURL=` echo  -n $SURL |  sed  s #^GET#HTTPS://#`
Cur_URL=` echo  "${HTTP_SURL}&Signature=${sigure}" `
Log_URL=`curl -s -l --url $Cur_URL| sed   's/},{/\n/g' | grep  "$LastDay" | awk  -F '"'  '{print $14}' | sed  -e  's#\\\/#\/#g' `
#echo $Log_URL
cd  $HOME
if  [ -d . /cdnlogs/ $LastDay ] 
then 
      cd  . /cdnlogs/ $LastDay 
else 
      mkdir  -p . /cdnlogs/ $LastDay &&  cd  . /cdnlogs/ $LastDay
fi
if  [ -f $LastDay-$Domain.gz ]
then
      echo  "The file was exist now."
      exit  127
else
    
         wget -q -O $LastDay-$Domain.gz  $Log_URL >> /dev/null  2>&1
         
         if  [ $? - eq  0 ]
              then 
                    echo  -e   "\033[32mDownload log file successful.\033[0m"
              else 
                    echo  -e  "\033[31mDownload log file failed.\033[0m"
         fi
fi

 资料参考:

 https://www.qcloud.com/doc/api/231/3950

补充:在SURL中的接口参数是区分大小写的,因为在调试的时候hostId写成了hostid,大概调试了快一个小时都是错误4000,invalid parameter,这点需要注意。

https://github.com/QcloudApi/qcloudapi-sdk-php 如果会php的话,这里有现成的,可惜我不会,唉~



本文转自 jerry1111111 51CTO博客,原文链接:http://blog.51cto.com/jerry12356/1836944,如需转载请自行联系原作者

相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
6天前
|
存储 监控 Java
|
17天前
分享一种接口的日志格式
分享一种接口的日志格式
35 13
|
20天前
|
存储 开发框架 前端开发
循序渐进VUE+Element 前端应用开发(31)--- 系统的日志管理,包括登录日志、接口访问日志、实体变化历史日志
循序渐进VUE+Element 前端应用开发(31)--- 系统的日志管理,包括登录日志、接口访问日志、实体变化历史日志
|
1月前
|
分布式计算 运维 DataWorks
DataWorks产品使用合集之如何查看数据服务API发布后的服务端日志
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
存储 监控 安全
《SelectDB 新一代日志存储分析平台解决方案》白皮书重磅发布|立即下载
作为基于 Apache Doris 打造的现代化数据仓库,SelectDB 不拘泥于传统数仓的限制,针对日志数据的特点引入了多项创新性技术,使用户可基于 SelectDB 构建开放、高性能、低成本、统一的日志存储分析平台, 截至目前已在近百家行业内知名企业中落地。
《SelectDB 新一代日志存储分析平台解决方案》白皮书重磅发布|立即下载
|
1月前
|
XML Java 数据格式
支付系统----微信支付20---创建案例项目--集成Mybatis-plus的补充,target下只有接口的编译文件,xml文件了,添加日志的写法
支付系统----微信支付20---创建案例项目--集成Mybatis-plus的补充,target下只有接口的编译文件,xml文件了,添加日志的写法
|
1月前
|
前端开发 Java
支付系统20-----支付宝支付-----统一收单下单并支付页面接口----定义controller,跨域注解,统一收单下单并支付页面接口的创建,打印日志的注解
支付系统20-----支付宝支付-----统一收单下单并支付页面接口----定义controller,跨域注解,统一收单下单并支付页面接口的创建,打印日志的注解
|
2月前
|
Java 程序员
技术日志:揭秘Java编程 —— 抽象类与接口的隐藏力量!
【6月更文挑战第17天】在Java编程中,抽象类和接口如同内功心法,增强代码灵活性和维护性。抽象类`Course`定义共性属性和行为,如显示大纲,子类如`ProgrammingCourse`继承并实现细节。接口`Ratable`提供评分功能,允许不同课程以多态方式实现。通过抽象类和接口,代码组织更有序,系统扩展性更强,犹如武侠高手以平凡招式创出非凡武学。不断学习和探索这些技术,能提升编程技艺,应对复杂挑战。
31 0
|
3月前
|
数据安全/隐私保护
通过mac电脑的下载服务器的日志与日志筛选
通过mac电脑的下载服务器的日志与日志筛选
46 0
|
3月前
|
监控 Java API
JDK 9新特性深度探索:平台日志API和服务
本文将深入探讨JDK 9中引入的平台日志API和服务。这一新特性为Java应用程序提供了更强大、灵活的日志记录功能,帮助开发者更好地监控和诊断应用程序的运行状况。本文将详细介绍平台日志API和服务的特性和优势,以及如何在项目中应用这一新特性来提升应用程序的稳定性和可维护性。