From 71c27f5c418f169afd5a31f1c10f89db43798e4a Mon Sep 17 00:00:00 2001 From: Susan Dreher Date: Thu, 7 Jun 2018 13:33:44 -0400 Subject: [PATCH] ensure manifests are unique --- .gitignore | 3 ++- panopto/upload.py | 13 +++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 27628e5..52a806f 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ node_modules dist pypanopto.egg-info .pytest_cache -testbed.py \ No newline at end of file +testbed.py +.settings \ No newline at end of file diff --git a/panopto/upload.py b/panopto/upload.py index cf4a345..2c4a2ad 100644 --- a/panopto/upload.py +++ b/panopto/upload.py @@ -3,6 +3,7 @@ import math import os import re +import uuid from boto.compat import BytesIO from boto.s3.connection import S3Connection, OrdinaryCallingFormat @@ -67,12 +68,16 @@ def __init__(self): self.dest_filename = None self.title = None self.description = None + self.uuid = str(uuid.uuid4()) def set_destination_attributes(self): - if not self.dest_filename: - self.dest_filename = os.path.basename(self.input_file) + path, filename = os.path.split(self.input_file) + + fname, ext = os.path.splitext(filename) + self.dest_filename = '{}{}'.format(self.uuid, ext) + if not self.title: - self.title = self.dest_filename + self.title = fname def create_session(self): # authenticate @@ -185,7 +190,7 @@ def upload_manifest(self): source_file = BytesIO(manifest.encode('utf-8')) - key_name = self.target.file_key('manifest.xml') + key_name = self.target.file_key('{}.xml'.format(self.uuid)) mp = self.bucket.initiate_multipart_upload(key_name) mp.key_name = key_name