Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class BoxStorage(StorageAbstract):
- def __init__(self):
- """
- """
- self.box_username = config.get_config_value('remote-storage', 'box_username')
- self.box_password = config.get_config_value('remote-storage', 'box_password')
- self.target = config.get_config_value('server', 'outputpath')
- self.output_url = '%s%s' % (
- config.get_config_value('server', 'url'),
- config.get_config_value('server', 'outputurl')
- )
- def store(self, output):
- import shutil, tempfile, httplib2
- try:
- import boxsdk
- except:
- raise StorageDependecyError('[400]:Dependecny for Box Storage not met')
- file_name = output.file
- (prefix, suffix) = os.path.splitext(file_name)
- if not suffix:
- suffix = output.output_format.get_extension()
- (file_dir, file_name) = os.path.split(prefix)
- output_name = tempfile.mkstemp(suffix=suffix, prefix=file_name,
- dir=self.target)[1]
- full_output_name = os.path.join(self.target, output_name)
- # LOGGER.info('Storing file output to %s', full_output_name)
- shutil.copy2(output.file, full_output_name)
- just_file_name = os.path.basename(output_name)
- local_url = urljoin(self.output_url, just_file_name)
- curl_command = "curl -u %s:%s -T %s https://dav.box.com/dav/%s" %(self.box_username,self.box_password,local_url,just_file_name)
- subp = subprocess.Popen(curl_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- curlstdout, curlstderr = subp.communicate()
- url = "https://dav.box.com/%s" %just_file_name
- return (STORE_TYPE.BOX, output_name, url)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement