【腾讯云】cdn上传工具添加

master
gaoxin 2021-06-11 12:41:54 +08:00
parent 924bb4d343
commit 702271ad33
2 changed files with 116 additions and 0 deletions

View File

@ -0,0 +1,4 @@
依赖python 2.7
安装 腾讯云 cosclient
pip install cos-python-sdk-v5

112
Tools/cos/UpLoad.py 100644
View File

@ -0,0 +1,112 @@
# -*- coding: utf-8 -*-
# Auther Wang Qi
# !usrbinenv python
# encoding utf-8
import os
import oss2
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("\\", "/").lstrip("/")
path = path.replace("\\", "/").lstrip("/")
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
)
class Cos_Upload():
logging.basicConfig(level=logging.INFO, stream=sys.stdout)
def __init__(self, abDir, settingDir, changeVersion):
self.settingFile = "Setting.txt"
self.configFile = "config.txt"
self.versionFile = "version.txt"
self.fileList = []
self.ab_dir = abDir
self.setting_dir = self.ab_dir + "/" + settingDir
self.change_version = changeVersion
self.change_file = self.setting_dir + "/__HotFixLog/" + changeVersion + ".log"
self.loadSetting()
# cdn config
self.bucket = 'internal-jieling-1302131159'
self.secret_id = "AKIDRJxLRFFzwcmiNlLzqPggdplPlrpVec2A"
self.secret_key = "zh8JDqJZYLq42j9NL2RYOyGI9kDOIGxN"
self.region = "ap-guangzhou"
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"]
def get_all_file(self):
fo = open(self.change_file, "r")
files = fo.readlines()
for f in files:
file = f.strip()
self.fileList.append(file)
return self.fileList
def up(self):
filelist = self.get_all_file()
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)
if __name__ == '__main__':
if sys.argv.__len__() == 4:
print(sys.argv[1])
t = Cos_Upload(sys.argv[1], sys.argv[2], sys.argv[3])
t.up()
else:
print("params error!")
# if __name__ == '__main__':
# z = Cos_Upload("D:/HotFix/Root/mht_china/local", "cdn_v3", 'version_1')
# z.up()