def upload_sample_documents(self): repo = CmisClient(self.settings["cmis_url"], self.settings["cmis_username"], self.settings["cmis_password"]).defaultRepository try: repo.getObjectByPath(self.settings["capture_folder"]) self.LOGGER.debug("Capture folder available") except: self.LOGGER.debug("CMIS folder not present. Uploading demo files.") parent_folder_name = "/".join(self.settings["capture_folder"].split("/")[:-1]) parent_folder = repo.getObjectByPath(parent_folder_name) demoFolder = repo.createFolder(parent_folder, self.settings["capture_folder"].split("/")[-1]) demoFolder.createDocument('Invoice01.pdf', contentFile=open("test/data-barcode-skeleton/doc001/Invoice01.pdf")) demoFolder.createDocument('Invoice02.pdf', contentFile=open("test/data-barcode-skeleton/doc002/Invoice02.pdf"))
def download_from_cmis(self): if "cmis_url" not in self.settings: self.LOGGER.warn("No CMIS repo specified. Processing documents is datadir.") return repo = CmisClient(self.settings["cmis_url"], self.settings["cmis_username"], self.settings["cmis_password"]).defaultRepository for document in repo.getObjectByPath(self.settings["capture_folder"]).getChildren(): document_name = document.getName() docid = document.getObjectId() docid = docid.replace("workspace://SpacesStore/", "") # remove version identifier ;1.0 if ";" in docid: docid = docid.split(";")[0] document_workdir = os.path.join(self.settings["datadir"], docid) if not os.path.exists(document_workdir): os.makedirs(document_workdir) local_document_path = os.path.join(document_workdir, document_name) if os.path.exists(local_document_path): self.LOGGER.debug("{} exists. skipping download from CMIS".format(local_document_path)) else: self.LOGGER.debug("downloading {}".format(document_name)) with open(local_document_path, "w") as fh: fh.write(document.getContentStream().read())