| 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() | |