API 인 터 페 이 스 를 호출 하여 텐 센트 CDN 접근 로 그 를 다운로드 합 니 다.

회 사 는 텐 센트 cdn 을 사용 하여 사이트 의 정적 내용 을 가속 화 시 켰 습 니 다. 업무 수요 로 인해 매일 어제 의 로 그 를 다운로드 해 야 합 니 다.cdn 은 운영 차원 에서 관리 하지만 이 수 요 는 업무 이기 때문에 매일 운영 차원 에서 다운로드 한 다음 에 메 일 이나 다른 도 구 를 통 해 보 내 면 번 거 로 울 수 있 습 니 다.다행히 텐 센트 CDN 은 API 인 터 페 이 스 를 제 공 했 기 때문에 셸 스 크 립 트 가 API 를 호출 하여 다운로드 하 는 방식 으로 정기 적 으로 로 그 를 다운로드 함으로써 업무 자 들 이 이 스 크 립 트 를 실행 하면 자체 적 으로 로 그 를 다운로드 하여 운영 업 무 를 해방 시 켰 다.
#!/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/},{/
/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 를 할 수 있다 면, 여기에 이미 만들어 진 것 이 있 는데, 애석 하 게 도 나 는 할 줄 모른다.

좋은 웹페이지 즐겨찾기