From 9771df87bbbd47191f2ef1ceec6775386291e90b Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Mon, 11 Apr 2022 17:46:25 +0800 Subject: [PATCH] up aiwan tool --- Tools/cos_aiwan_ios/Flush.py | 16 +++ Tools/cos_aiwan_ios/Flush_cdn.py | 35 ++++++ Tools/cos_aiwan_ios/UpLoad.py | 138 ++++++++++++++++++++++++ Tools/cos_aiwan_ios/UpLoad.pyc | Bin 0 -> 4270 bytes Tools/cos_aiwan_ios/_Readme.md | 10 ++ Tools/cos_aiwan_ios/悠谷CDN参数.txt | 8 ++ 6 files changed, 207 insertions(+) create mode 100644 Tools/cos_aiwan_ios/Flush.py create mode 100644 Tools/cos_aiwan_ios/Flush_cdn.py create mode 100644 Tools/cos_aiwan_ios/UpLoad.py create mode 100644 Tools/cos_aiwan_ios/UpLoad.pyc create mode 100644 Tools/cos_aiwan_ios/_Readme.md create mode 100644 Tools/cos_aiwan_ios/悠谷CDN参数.txt diff --git a/Tools/cos_aiwan_ios/Flush.py b/Tools/cos_aiwan_ios/Flush.py new file mode 100644 index 000000000..061693150 --- /dev/null +++ b/Tools/cos_aiwan_ios/Flush.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +import json +import sys +import requests + +if sys.argv.__len__() == 2: + flashPath = sys.argv[1] + urlPath = "http://smi.51sfsy.com/mrj/cdnrefresh?nonce=1532319693&token=881d1b9844fb78c165dad28752d67eb8&dirs=" + # path = urlPath + "'" + flashPath +"'" + path = urlPath + flashPath + print(path) + r = requests.get(url= path) + print(r.status_code) + print(r.text) +else: + print("params error!") diff --git a/Tools/cos_aiwan_ios/Flush_cdn.py b/Tools/cos_aiwan_ios/Flush_cdn.py new file mode 100644 index 000000000..d72b78a95 --- /dev/null +++ b/Tools/cos_aiwan_ios/Flush_cdn.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +import json +import sys +from tencentcloud.common import credential +from tencentcloud.common.profile.client_profile import ClientProfile +from tencentcloud.common.profile.http_profile import HttpProfile +from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException +from tencentcloud.cdn.v20180606 import cdn_client, models + + +if sys.argv.__len__() == 2: + try: + path = sys.argv[1] + cred = credential.Credential("AKIDwhBYeT2LN8cqoa6ML2SbT5RVJq76pHSN", "f4C5h38vRhgPr2wZw2rPfeNpzsTord8M") + httpProfile = HttpProfile() + httpProfile.endpoint = "cdn.tencentcloudapi.com" + + clientProfile = ClientProfile() + clientProfile.httpProfile = httpProfile + client = cdn_client.CdnClient(cred, "", clientProfile) + + req = models.PurgePathCacheRequest() + params = { + "Paths": [ path ], + "FlushType": "flush" + } + req.from_json_string(json.dumps(params)) + + resp = client.PurgePathCache(req) + print(resp.to_json_string()) + + except TencentCloudSDKException as err: + print(err) +else: + print("params error!") diff --git a/Tools/cos_aiwan_ios/UpLoad.py b/Tools/cos_aiwan_ios/UpLoad.py new file mode 100644 index 000000000..0264cbdca --- /dev/null +++ b/Tools/cos_aiwan_ios/UpLoad.py @@ -0,0 +1,138 @@ +# -*- coding: utf-8 -*- +# Auther Wang Qi +# !usrbinenv python +# encoding utf-8 +import os +import sys +import base64 +import hashlib +import requests +import subprocess +import urllib3 +import logging +import time +import random +import argparse +import json +from threading import Thread, current_thread +from concurrent.futures import ProcessPoolExecutor +from qcloud_cos import CosConfig +from qcloud_cos import CosS3Client + + # url = "http://jl.tyu89.wang/" + cos_object_key + # print(url) + #self.flushurl(url) + # def flushurl(self,url) + # keydict = { + # 'Action' 'RefreshCdnUrl', + # 'Timestamp' str(int(time.time())), + # 'Nonce' str(int(random.random() 1000)), + # 'SecretId' jlrg.secret_id, + # 'urls.0' url + # } + # return keydict + +def upload_file_to_txy_cos(self, path, file): + file = file.replace("\\", "/") + path = path.replace("\\", "/") + local_file_path = path + file + print(local_file_path) + cos_object_key = self.cdn_sub_dir + "/" + self.platform +"/" + file + print(cos_object_key) + response = self.client.upload_file( + Bucket=self.bucket, + LocalFilePath=local_file_path, + Key=cos_object_key, + PartSize=1, + MAXThread=10, + EnableMD5=False + ) + print(response['ETag']) + +class Cos_Upload(): + logging.basicConfig(level=logging.INFO, stream=sys.stdout) + def __init__(self, *args): + abDir = args[0] + settingDir = args[1] + changeVersion = args[2] + isThread = "1" + if args.__len__() > 3: + isThread = args[3] + + self.init(abDir, settingDir, changeVersion, isThread) + + def init(self, abDir, settingDir, changeVersion, isThread): + self.settingFile = "Setting.txt" + self.configFile = "config.txt" + self.versionFile = "version.txt" + + self.fileList = [] + self.setting_dir = abDir + "/" + settingDir + self.ab_dir = self.setting_dir + self.change_version = changeVersion + self.change_file = self.setting_dir + "/__HotFixLog/" + changeVersion + ".log" + self.loadSetting() + if self.EncryptKey: + self.configFile = self.EncryptKey + self.configFile + self.versionFile = self.EncryptKey + self.versionFile + + self.IsThread = isThread + + # cdn config + self.bucket = '648sy-tcx-1251752472' + self.secret_id = "AKIDwhBYeT2LN8cqoa6ML2SbT5RVJq76pHSN" + self.secret_key = "f4C5h38vRhgPr2wZw2rPfeNpzsTord8M" + self.region = "ap-beijing" + self.config = CosConfig(Region=self.region, SecretId=self.secret_id, SecretKey=self.secret_key, Token=None, Scheme='https') + self.client = CosS3Client(self.config) + + def loadSetting(self): + settingContent = open(self.setting_dir +"/"+ self.settingFile, "rb") + settingJson = json.load(settingContent) + self.cdn_sub_dir = settingJson["dir"] + self.platform = settingJson["platform"] + if ("EncryptKey" in settingJson) : + self.EncryptKey = settingJson["EncryptKey"] + else: + self.EncryptKey = "" + + def get_all_file(self): + fo = open(self.change_file, "r") + files = fo.readlines() + #print(files) + for f in files: + file = f.strip() + self.fileList.append(file) + return self.fileList + + def up(self): + filelist = self.get_all_file() + if self.IsThread == "1": + pool = ProcessPoolExecutor(4) + for file in filelist: + pool.submit(upload_file_to_txy_cos, self, self.ab_dir + "/" + self.platform + "/", file) + pool.submit(upload_file_to_txy_cos, self, self.setting_dir +"/", self.configFile) + pool.submit(upload_file_to_txy_cos, self, self.setting_dir +"/", self.versionFile) + else: + for file in filelist: + upload_file_to_txy_cos(self, self.ab_dir + "/" + self.platform + "/", file) + upload_file_to_txy_cos(self, self.setting_dir +"/", self.configFile) + upload_file_to_txy_cos(self, self.setting_dir +"/", self.versionFile) + + + +if __name__ == '__main__': + if sys.argv.__len__() == 4: + t = Cos_Upload(sys.argv[1], sys.argv[2], sys.argv[3]) + t.up() + elif sys.argv.__len__() == 5: + t = Cos_Upload(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]) + t.up() + else: + print("params error!") + + + +# if __name__ == '__main__': +# z = Cos_Upload("D:/HotFix/Root/mht_china/local", "cdn_v3", 'version_1') +# z.up() diff --git a/Tools/cos_aiwan_ios/UpLoad.pyc b/Tools/cos_aiwan_ios/UpLoad.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a905d146b676d2afbc860cdba05c7feb77fa04be GIT binary patch literal 4270 zcmbtX+in}l5v}1x7G=?r<=e{HB+fd!QG!@r%eHI;L13?ZUzt&cT5pz+F&NIYsG)}( zYPxAl3;Rj=hX8p@fIQ^0@(cNZc4< z%KnYN)=CAUqYtYhBRoodgTV;_LYqyFbzkgtou`5bH*udaM zVK<85Zr1avlU~)nzL95GE2*N-ZJN~Mv42MMx*~l&Qd*ItioB`FYnbY|CZGn>F1)GA z>ng7BTBHv=K|={&DsnKunF=|rFhpqb;%k7VWzhA<8O zdH4v}Xs^uUY%R-s?>M$s)k0s4lNZK0-e9vx;`~9Do2}UGIo|C{bLeLAy%m?PoqcOE zwHgic^zI+MZL>M_998#+aW^+l@7;7Y_O|2R$_b9KDa|O46XR&WBppU}+>O$#)WtF4 zc8hYL$4S(%I&VD6i#UyTaUdP)`jghN#Dh4uW`&m5y{yT1RT%N$++ANIGY&XZ02M~@2kAUoLE21x8qg7*)Lac{iy z)o2q(Tpb;{^O$|?z>zB=cW@YC>Sc`BkI_i5gwI@14?e~-A2foQ$){0qv?9P3eWjO9 zIGumI>=$_KAJ74`DW$3c5K&VBxTvcDCh>89Qo^?P z5BJE;OOvaWtwY2N5;~gp<={g+_Bk4$7TYa*L}RaI;upFqB%Gus#GGRN2ym~ZFOfW!#1KY%QT32j%yjQ=!2SIilW>MqevZ{4Kt^2 zhG#LNs<`Y~$8*Qsdw>`%Yk}}=*khMKPxj(r&pb1w&5EI7FtZ-bAMAfdNfhxkQMAq- z2{eJX`I&*=o0WuT;-f5rZ~IR)Feq#iL4Zvls5vQAq^IVJyp3z%2G0)>%mxb3HiE%1 zj_ETKCCq*Ssta&4$s{_V`dPq30va4DfI+npz%Z*C+glyqJN zOlzuuX&A+s7nnMZq|R3s#hunsX#Ay?IL8xn%ktK3?}t@);4J-;D7R{t!!Nx@*biwa zOJ`k;CegQ9^sd?(G^=^hvvl|RjobF{ic1czTwA+&?bgk;8@JZn&oOZK%g6U#?S1i$ z*U?-TD!Y_Gko@B|JM5GQM=_XVdCzMjhlPdZ@&!pdRyh%tIn&na%nOubU`fhVn0j+)_n0}fPkfQoHZ$vvzpE_DU1CqD%5MtqXktyzxn9K;v`=Q8 zI79LOc!K|MiDx65TfJJ8rIP^SMU^hOS*a!n8I~Gytzzgo+TS3gm%>FfD>Q|MX7~xE z%WUYO@KZD&8g1bvynF|br66EZd@7CLw6f|)!Ca+LRUP!#1LZOvmCptq`vi@fauEXX zSk`624g|@M@f8rrWINP%;5dRD@rF*#ceIRa>m6GPSVzt(yP7+Z-a=*|PqMT~F*3vO zI)v~l8Z}(sf`B+ihlF&Ve}_l)j7HrAC#XamFm>GhPw@T+Tk#f_e#YeqE(v}dECfw& zEqd*(wL)}`Tg#h>JdgTDXrF^$(JJ?ze4`0k*T=Ty!9hwSmW;LdxPDwU`E$C~MwiIsG@mQNi>cR|o6F z*uCegYB$a600Um&JE+}2gJTRz7c%vv96zMo;m!%3aRgZatbl#0^mLP`lYeEnDxb@)o$`tm{`kTA7 z7`yN@%vFX98KB-oTaexXS*8E4Kn;I{6=+UH@C-`O#$4lkW2VuV++h%BsHxOH@5(PN zyfU(Zrs7dt#shoFlx0!=%pZr#YV;L0B$wz#a8t8>Lk+MO+r2#N>L#VxA0sra&nV;W z$p7-vdE+w2wCiD;YtW4@L(bG(6A#m3pbMa~!x5|r?{WgOl>adY3zMWIWVPs)&>#;@ ze($aBj@=mLy$2Xww4da~IAv+B3Ct%eg&QvuveMQQV7HgyPubID!yoJey~A%kK7OZ0 hC85m&THp0KA1v~-&^UeO?tE}A_yquXF1Ut5@;@>FLUjND literal 0 HcmV?d00001 diff --git a/Tools/cos_aiwan_ios/_Readme.md b/Tools/cos_aiwan_ios/_Readme.md new file mode 100644 index 000000000..61a29a418 --- /dev/null +++ b/Tools/cos_aiwan_ios/_Readme.md @@ -0,0 +1,10 @@ +依赖:python 2.7 + +安装多线程库 +pip install futures + +安装 腾讯云 cosclient +pip install cos-python-sdk-v5 + +安装 tencentcloud-sdk-python +pip install tencentcloud-sdk-python \ No newline at end of file diff --git a/Tools/cos_aiwan_ios/悠谷CDN参数.txt b/Tools/cos_aiwan_ios/悠谷CDN参数.txt new file mode 100644 index 000000000..baf5fca82 --- /dev/null +++ b/Tools/cos_aiwan_ios/悠谷CDN参数.txt @@ -0,0 +1,8 @@ +账号未提供 + +bucket = '648sy-tcx-1251752472' +secret_id = "AKIDwhBYeT2LN8cqoa6ML2SbT5RVJq76pHSN" +secret_key = "f4C5h38vRhgPr2wZw2rPfeNpzsTord8M" +region = "ap-beijing" + +域名:http://c-tcx.648sy.com/ \ No newline at end of file