code: def PackageUpload(package,ftp_url):
  		
  		#o = urlparse.urlparse(ftp_url)
  		# Very weak URL checking
  		#if o.scheme.lower() != "ftp":  
  		#	clc.v1.output.Status('ERROR',2,'Invalid FTP URL')
  		#	return
  
  		# Confirm file exists 
  		if not os.path.isfile(package):
  			clc.v1.output.Status('ERROR',2,'Package file (%s) not found' % (package))
  			return
  
  		m = re.search("ftp://(?P<user>.+?):(?P<passwd>.+?)@(?P<host>.+)",ftp_url)
  		try:
  			ftp = ftplib.FTP(m.group('host'),m.group('user'),m.group('passwd'))
  			file = open(package,'rb')   
  			filename = re.sub(".*/","",package)
  			ftp.storbinary("STOR %s" % (filename),file)
  			file.close()
  			ftp.quit()
  			clc.v1.output.Status('SUCCESS',2,'Blueprint package %s Uploaded' % (filename))
  		except Exception as e:
  			clc.v1.output.Status('ERROR',2,'FTP error %s: %s' % (ftp_url,str(e)))
  
  		return({})
docs: Uploads specified zip package to cloud endpoint.
  
  		See URL below for description on how to properly create a package:
  		https://t3n.zendesk.com/entries/20348448-Blueprints-Script-and-Software-Package-Management
  
  		:param package: path to zip file containing package.manifest and supporting scripts
  		:param ftp_url: ftp URL including credentials of the form ftp://user:password@hostname