def scan(self, filePath): if not os.path.isfile(filePath): return self.AD_ERR_NOFILE hashResult = uh.utils_hash_file(filePath) if hashResult is None: return self.AD_ERR_NOFILE if self.lastTime == 0.0: self.lastTime = time.time() else: interval = time.time() - self.lastTime self.lastTime = time.time() if interval < 0: return self.AD_ERR_INT if interval < self.interval: time.sleep(self.interval - interval) scanResult = self.scanner.scan(hashResult) if scanResult == Apk_Detector_Scanner.ADSC_OK: return self.AD_OK elif scanResult == Apk_Detector_Scanner.ADSC_ERR_NOTINSTORE: return self.send(filePath) elif scanResult == Apk_Detector_Scanner.ADSC_ERR_API: return self.AD_ERR_API elif scanResult == Apk_Detector_Scanner.ADSC_ERR_SCANNING: return self.AD_ERR_QUEUED return self.AD_ERR_UNKNOWN
def do_save(self, localPath, oneObj): fileHash = uh.utils_hash_file(localPath) if self.dsmDb.apk_exists(fileHash): return objName = self.gen_obj_name(fileHash) self.outOss.upload_to_oss(localPath, objName) self.inOss.rm_object(oneObj) self.dsmDb.set_apk(fileHash, objName)
def send(self, filePath): self.wait() if not os.path.isfile(filePath): return self.AD_ERR_NOFILE hashResult = uh.utils_hash_file(filePath) if hashResult is None: return self.AD_ERR_NOFILE sendResult = self.sender.send(filePath) if sendResult == Apk_Detector_Sender.ADSE_OK: return self.AD_ERR_QUEUED elif sendResult == Apk_Detector_Sender.ADSE_ERR_API: return self.AD_ERR_API elif sendResult == Apk_Detector_Sender.ADSE_ERR_TOOBIG: return self.AD_ERR_TOOBIG return self.AD_ERR_UNKNOWN
def set_file(self, filePath): if not os.path.isfile(filePath): return self.DF_ERR_NOFILE fileHash = uh.utils_hash_file(filePath) if fileHash is None: return self.DF_ERR_UNKNOWN if self.file_exists(fileHash): return self.DF_ERR_EXISTS dstPathDir = self.gen_dst_path_dir(fileHash) if not os.path.isdir(dstPathDir): os.makedirs(dstPathDir) dstPath = self.gen_dst_path(fileHash) shutil.copyfile(filePath, dstPath) return self.DF_OK