from flask import Flask, request, jsonify import uuid app = Flask(__name__) # В памяти храним зарегистрированных пользователей и сессии передачи файлов users = {} transfers = {} @app.route('/register', methods=['POST']) def register(): data = request.json username = data.get('username') password = data.get('password') if not username or not password: return jsonify({'error': 'Не переданы обязательные поля'}), 400 if username in users: return jsonify({'error': 'Пользователь уже существует'}), 400 users[username] = {'password': password} return jsonify({'message': 'Регистрация прошла успешно'}) @app.route('/create_transfer', methods=['POST']) def create_transfer(): data = request.json filename = data.get('filename') ip = data.get('ip') port = data.get('port') filesize = data.get('filesize', 0) if not filename or not ip or not port: return jsonify({'error': 'Отсутствуют необходимые параметры'}), 400 transfer_id = str(uuid.uuid4()) transfers[transfer_id] = { 'filename': filename, 'ip': ip, 'port': port, 'filesize': filesize, 'downloaded': False } # Формируем ссылку для скачивания. request.host_url учитывает адрес сервера. download_link = request.host_url + 'download/' + transfer_id return jsonify({'download_link': download_link}) @app.route('/download/', methods=['GET']) def get_transfer(transfer_id): transfer = transfers.get(transfer_id) if not transfer: return jsonify({'error': 'Неверный идентификатор передачи'}), 404 return jsonify(transfer) if __name__ == '__main__': # Запускаем сервер на всех интерфейсах на порту 5000 app.run(host='0.0.0.0', port=5000)