Beispiel #1
0
    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
Beispiel #2
0
    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)
Beispiel #3
0
    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
Beispiel #4
0
    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