diff --git a/sharex_server.py b/sharex_server.py index 77615f4..d6e26d9 100644 --- a/sharex_server.py +++ b/sharex_server.py @@ -69,7 +69,7 @@ async def handle_upload(req, acc, acc_db): if h not in acc_db: break else: - return web.Response(text='server full', status=500) + return web.Response(text='url key-space full', status=500) acc_db[h] = filename local_fname = f'{conf.data_path}/{acc}/{h}_{filename}' @@ -134,6 +134,17 @@ async def handle_download(req, acc, acc_db): def main(): + if conf.url_hash_len > 31: + raise ValueError('url_hash_len can\'t be bigger than 31') + if not set(conf.max_filesize.replace(' ', ''))\ + .issubset(valid_hash_chars | {'*'}): + raise ValueError('max_filesize only can contain numbers and *') + conf.max_filesize = eval(conf.max_filesize) + conf.auth_tokens = set(conf.tokens) + conf.prefix = conf.prefix.strip("/") + if conf.prefix: + conf.prefix = f'/{conf.prefix}' + conf.del_crypt_key = hashlib.md5(conf.del_crypt_key.encode()).digest()[:16] if not os.path.isdir(conf.data_path): os.mkdir(conf.data_path) for acc in os.listdir(conf.data_path): @@ -157,16 +168,5 @@ if __name__ == '__main__': file_db = defaultdict(dict) confname = sys.argv[1] if sys.argv[1:] and os.path.isfile(sys.argv[1]) else 'config.yaml' with open(confname) as cf: - conf = AttrDict.from_dict_recur(yaml.load(cf)) - if conf.url_hash_len > 31: - raise ValueError('url_hash_len can\'t be bigger than 31') - if not set(conf.max_filesize.replace(' ', ''))\ - .issubset(valid_hash_chars | {'*'}): - raise ValueError('max_filsize only can contain numbers and *') - conf.max_filesize = eval(conf.max_filesize) - conf.auth_tokens = set(conf.tokens) - conf.prefix = conf.prefix.strip("/") - if conf.prefix: - conf.prefix = f'/{conf.prefix}' - conf.del_crypt_key = hashlib.md5(conf.del_crypt_key.encode()).digest()[:16] + conf = AttrDict.from_dict_recur(yaml.safe_load(cf)) main()