from collections import defaultdict import boto3 ROOT_URL = 'https://nerfacc-bucket.s3.us-west-2.amazonaws.com/whl' html = '\n\n\n{}\n\n' href = ' {}
' args = { 'ContentType': 'text/html', 'CacheControl': 'max-age=300', 'ACL': 'public-read', } bucket = boto3.resource('s3').Bucket(name='nerfacc-bucket') wheels_dict = defaultdict(list) for obj in bucket.objects.filter(Prefix='whl'): if obj.key[-3:] != 'whl': continue torch_version, wheel = obj.key.split('/')[-2:] wheel = f'{torch_version}/{wheel}' wheels_dict[torch_version].append(wheel) index_html = html.format('\n'.join([ href.format(f'{torch_version}.html'.replace('+', '%2B'), version) for version in wheels_dict ])) with open('index.html', 'w') as f: f.write(index_html) bucket.Object('whl/index.html').upload_file('index.html', args) for torch_version, wheel_names in wheels_dict.items(): torch_version_html = html.format('\n'.join([ href.format(f'{ROOT_URL}/{wheel_name}'.replace('+', '%2B'), wheel_name) for wheel_name in wheel_names ])) with open(f'{torch_version}.html', 'w') as f: f.write(torch_version_html) bucket.Object(f'whl/{torch_version}.html').upload_file( f'{torch_version}.html', args)