mirror of https://github.com/MagicStack/uvloop.git
75 lines
2.0 KiB
Python
Executable File
75 lines
2.0 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
|
|
import argparse
|
|
import os
|
|
import os.path
|
|
import sys
|
|
import urllib.request
|
|
|
|
import tinys3
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description='S3 File Uploader')
|
|
parser.add_argument(
|
|
'--s3-bucket',
|
|
help=('S3 bucket name (defaults to $S3_UPLOAD_BUCKET)'),
|
|
default=os.environ.get('S3_UPLOAD_BUCKET'))
|
|
parser.add_argument(
|
|
'--s3-region',
|
|
help=('S3 region (defaults to $S3_UPLOAD_REGION)'),
|
|
default=os.environ.get('S3_UPLOAD_REGION'))
|
|
parser.add_argument(
|
|
'--s3-username',
|
|
help=('S3 username (defaults to $S3_UPLOAD_USERNAME)'),
|
|
default=os.environ.get('S3_UPLOAD_USERNAME'))
|
|
parser.add_argument(
|
|
'--s3-key',
|
|
help=('S3 access key (defaults to $S3_UPLOAD_ACCESSKEY)'),
|
|
default=os.environ.get('S3_UPLOAD_ACCESSKEY'))
|
|
parser.add_argument(
|
|
'--s3-secret',
|
|
help=('S3 secret (defaults to $S3_UPLOAD_SECRET)'),
|
|
default=os.environ.get('S3_UPLOAD_SECRET'))
|
|
parser.add_argument(
|
|
'--destdir',
|
|
help='Destination directory.')
|
|
parser.add_argument(
|
|
'package', metavar='PACKAGE',
|
|
help='Package name and version to download.')
|
|
|
|
args = parser.parse_args()
|
|
|
|
if args.s3_region:
|
|
endpoint = 's3-{}.amazonaws.com'.format(args.s3_region.lower())
|
|
else:
|
|
endpoint = 's3.amazonaws.com'
|
|
|
|
conn = tinys3.Connection(
|
|
access_key=args.s3_key,
|
|
secret_key=args.s3_secret,
|
|
default_bucket=args.s3_bucket,
|
|
tls=True,
|
|
endpoint=endpoint,
|
|
)
|
|
|
|
files = []
|
|
|
|
for entry in conn.list(args.package):
|
|
files.append(entry['key'])
|
|
|
|
destdir = args.destdir or os.getpwd()
|
|
|
|
for file in files:
|
|
print('Downloading {}...'.format(file))
|
|
url = 'https://{}/{}/{}'.format(endpoint, args.s3_bucket, file)
|
|
target = os.path.join(destdir, file)
|
|
urllib.request.urlretrieve(url, target)
|
|
|
|
return 0
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main())
|