新建文件upload_pgyer.py
,代码如下:
import osimport requestsimport argparseimport jsonfrom requests_toolbelt import MultipartEncoder, MultipartEncoderMonitorupload_url = 'https://upload.pgyer.com/apiv1/app/upload'class UploadOptions: def __init__(self): self.parser = argparse.ArgumentParser(description="自动上传文件") self.parser.add_argument("--path", type=str, required=True, help="apk的绝对路径,或者apk的根目录") self.parser.add_argument("--uKey", type=str, required=True, help="uKey") self.parser.add_argument("--api_key", type=str, required=True, help="_api_key") def parse(self): return self.parser.parse_args()# 使用的是python3,需要pip3 install requests requests_toolbeltif __name__ == '__main__': parser = UploadOptions() args = parser.parse() print(args) paths = [] # 支持只上传一个apk文件 # 或者传入多个apk的文件的根目录,会自动解析 if os.path.isfile(args.path): paths.append(args.path) else: for root, ds, fs in os.walk(args.path): print(root, ds, fs) if len(fs) > 0: for f in fs: file = os.path.join(root, f) if os.path.isfile(file) and str(file).endswith('.apk'): paths.append(file) for path in paths: print("开始上传", path) # uKey和_api_key去下面这个网站去获取 # https://www.pgyer.com/doc/api#uploadApp e = MultipartEncoder( fields={'uKey': args.uKey, '_api_key': args.api_key, 'file': (os.path.basename(path), open(path, 'rb'), 'application/octet-stream')} ) def my_callback(monitor): print('\r', '上传进度:', monitor.bytes_read / monitor.len, end='', flush=True) print(e) m = MultipartEncoderMonitor(e, my_callback) response = requests.post(upload_url, data=m, headers={'Content-Type': m.content_type}) # 如果不用带进度,可以用下面的这个方法 # response = requests.post(upload_url, data={ # 'uKey': args.uKey, # '_api_key': args.api_key, # }, files={'file': open(path, 'rb')}) response.encoding = "utf-8" print('\n', response.request.url, response.request.method) print(response.request.headers) print("返回的内容为-->", response.status_code, json.loads(response.text)) print('===================>')
在Android项目中的build.gradle
,新建一个task,可以替换成自己需要的文件目录
任务 uploadpython 的类型是 Exec,命令行为 'python3', '../upload_pgyer.py', '--path', '$buildDir/intermediates/apk', '--uKey', '你自己的key', '--api_key', '你自己的key'。请注意,新版本的 apk 不再位于 outputs 目录下,而是位于 '$buildDir/intermediates/apk' 目录下。使用以下命令即可上传:请执行以下命令上传Python项目:./gradlew uploadpython
。你可以在以下项目地址找到更多信息:https://github.com/SerBad/publish_pgyer
版权声明:搭建盘口维护联系TG:@KT_code
还木有评论哦,快来抢沙发吧~