Example #1
0
    def _put(self, cmd_args):
        """上传本地文件到服务器
        1. 确保本地文件存在
        2. 拿到文件名+大小+md5加密后的文件名,放到消息头里发给远程
        3. 打开文件,发送内容
        """

        if self.parameter_check(cmd_args, exact_args=1):
            local_file = cmd_args[0]
            if os.path.isfile(local_file):
                total_size = os.path.getsize(local_file)
                md5_value = utils.md5(local_file)
                self.send_msg('put',
                              file_size=total_size,
                              filename=local_file,
                              md5_value=md5_value)
                f = open(local_file, 'rb')
                uploaded_size = 0
                # last_percent = 0

                progress_generator = self.progress_bar(total_size)
                progress_generator.__next__()
                for line in f:
                    self.sock.send(line)
                    uploaded_size += len(line)
                    # current_percent = int(uploaded_size / total_size * 100)
                    # if current_percent > last_percent:
                    #     print("#"* int(current_percent/2) + "{percent}%".format(percent=current_percent),end='\r',flush=True)
                    #     last_percent = current_percent #把本次循环的percent赋值给last
                    progress_generator.send(uploaded_size)

                else:
                    print('\n')
                    print('file upload done'.center(50, '-'))
                    f.close()
Example #2
0
 def exists_order_id(self, key):
     '''
     检查是否存在此订单
     :param key:
     :return:
     '''
     sid = int(md5(str(key)), 16)
     table = self.table_prefix + '_' + str(sid % 16)
     return self.cursor.execute(
         'select order_id from %s where order_id="%s";' % (table, key))
Example #3
0
 def execute(self, sql, key):
     '''
     执行sql语句
     :param sql: sql语句
     :param key: 表的标识
     :return:
     '''
     sid = int(md5(str(key)), 16)
     table = self.table_prefix + '_' + str(sid % 16)
     sql = sql % table + ';'
     self.cursor.execute(sql)
     self.conn.commit()
Example #4
0
    def get_or_create_session_and_expired(self, force=False):
        """ 获取或者创建session

        :return:
        """
        now = int(time.time())
        is_save = False
        if self.sid:
            if self.expired < now:
                self.sid = md5('%s%s' % (str(now), self.uid))
                self.expired = now + settings.SESSION_EXPIRED
                is_save = True
        else:
            self.sid = md5('%s%s' % (str(now), self.uid))
            self.expired = now + settings.SESSION_EXPIRED
            is_save = True

        if is_save and not force:
            self.save()

        return self.sid, self.expired
Example #5
0
 def generate_custom_md5(self, data):
     """生成自定义MD5, 用于自定义数据, data中支持复杂类型 dict, set, list, tuple
     """
     if isinstance(data, (dict, set, list, tuple)):
         return md5(repr(data))
     return md5(data)
Example #6
0
 def generate_md5(cls, versions):
     """根据配置版本号生成 md5 值
     """
     versions_sort = sorted(versions.iteritems(), key=lambda x: x[0])
     return md5(versions_sort)