import argparse import os import os.path as osp import oss2 ACCESS_KEY_ID = os.getenv('OSS_ACCESS_KEY_ID', None) ACCESS_KEY_SECRET = os.getenv('OSS_ACCESS_KEY_SECRET', None) BUCKET_NAME = 'openmmlab' ENDPOINT = 'https://oss-accelerate.aliyuncs.com' def parse_args(): parser = argparse.ArgumentParser(description='Upload models to OSS') parser.add_argument('model_zoo', type=str, help='model_zoo input') parser.add_argument( '--dst-folder', type=str, default='mmsegmentation/v0.5', help='destination folder') args = parser.parse_args() return args def main(): args = parse_args() model_zoo = args.model_zoo dst_folder = args.dst_folder bucket = oss2.Bucket( oss2.Auth(ACCESS_KEY_ID, ACCESS_KEY_SECRET), ENDPOINT, BUCKET_NAME) for root, dirs, files in os.walk(model_zoo): for file in files: file_path = osp.relpath(osp.join(root, file), model_zoo) print(f'Uploading {file_path}') oss2.resumable_upload(bucket, osp.join(dst_folder, file_path), osp.join(model_zoo, file_path)) bucket.put_object_acl( osp.join(dst_folder, file_path), oss2.OBJECT_ACL_PUBLIC_READ) if __name__ == '__main__': main()