Add support for uploading dsda zip bundles. Also fix ACL to allow public reading of uploaded files.
This commit is contained in:
parent
ac29c5c49b
commit
b71c8c0694
1 changed files with 17 additions and 3 deletions
20
dcc/put.py
20
dcc/put.py
|
@ -3,10 +3,24 @@ import dcc.config
|
||||||
import dcc.doom_base
|
import dcc.doom_base
|
||||||
|
|
||||||
class Put(dcc.doom_base.WadMap):
|
class Put(dcc.doom_base.WadMap):
|
||||||
|
def get_parser(self, prog_name):
|
||||||
|
parser = super().get_parser(prog_name)
|
||||||
|
parser.add_argument("-d", "--dsda", action="store_true")
|
||||||
|
parser.add_argument("-s", "--single", action="store_true")
|
||||||
|
return parser
|
||||||
|
|
||||||
# TODO: accept configuration for bucket name
|
# TODO: accept configuration for bucket name
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
s3_client = boto3.client('s3')
|
s3_client = boto3.client('s3')
|
||||||
demo = dcc.config.DemoInPath(parsed_args.wad, parsed_args.map)
|
demo = dcc.config.DemoInPath(parsed_args.wad, parsed_args.map)
|
||||||
s3_client.upload_file(
|
bucket = dcc.config.DemoName(parsed_args.wad, parsed_args.map)
|
||||||
demo, 'yrriban', 'doom/' + dcc.config.DemoName(parsed_args.wad, parsed_args.map),
|
if parsed_args.dsda:
|
||||||
ExtraArgs={'ContentType': 'binary/octet-stream'})
|
pattern = ("{}{}".format(parsed_args.wad[0:2], parsed_args.map) if not parsed_args.single else parsed_args.wad[0:4]) + "*.zip"
|
||||||
|
zips = [x for x in dcc.config.DEMOS.joinpath(parsed_args.wad).glob(pattern)]
|
||||||
|
if len(zips) != 1:
|
||||||
|
raise Exception("Unable to identify exactly one suitable upload candidate (was {})".format(zips))
|
||||||
|
demo = zips[0]
|
||||||
|
bucket = "dsda/{}".format(demo.name)
|
||||||
|
print("Uploading {} to bucket doom/{}.".format(demo, bucket))
|
||||||
|
s3_client.upload_file(demo, 'yrriban', 'doom/' + bucket,
|
||||||
|
ExtraArgs={'ContentType': 'binary/octet-stream', 'ACL': 'public-read'})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue