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 000000000..a905d146b Binary files /dev/null and b/Tools/cos_aiwan_ios/UpLoad.pyc differ 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