Starchik1 commited on
Commit
33f8f7c
·
verified ·
1 Parent(s): bd218f4

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +17 -6
main.py CHANGED
@@ -1,5 +1,6 @@
1
  from flask import Flask, request, jsonify
2
- import uuid
 
3
 
4
  app = Flask(__name__)
5
 
@@ -7,6 +8,15 @@ app = Flask(__name__)
7
  users = {}
8
  transfers = {}
9
 
 
 
 
 
 
 
 
 
 
10
  @app.route('/register', methods=['POST'])
11
  def register():
12
  data = request.json
@@ -29,7 +39,8 @@ def create_transfer():
29
  if not filename or not ip or not port:
30
  return jsonify({'error': 'Отсутствуют необходимые параметры'}), 400
31
 
32
- transfer_id = str(uuid.uuid4())
 
33
  transfers[transfer_id] = {
34
  'filename': filename,
35
  'ip': ip,
@@ -37,11 +48,11 @@ def create_transfer():
37
  'filesize': filesize,
38
  'downloaded': False
39
  }
40
- # Формируем ссылку для скачивания. request.host_url учитывает адрес сервера.
41
- download_link = request.host_url + 'download/' + transfer_id
42
  return jsonify({'download_link': download_link})
43
 
44
- @app.route('/download/<transfer_id>', methods=['GET'])
45
  def get_transfer(transfer_id):
46
  transfer = transfers.get(transfer_id)
47
  if not transfer:
@@ -50,4 +61,4 @@ def get_transfer(transfer_id):
50
 
51
  if __name__ == '__main__':
52
  # Запускаем сервер на всех интерфейсах на порту 5000
53
- app.run(host='0.0.0.0', port=7860)
 
1
  from flask import Flask, request, jsonify
2
+ import random
3
+ import string
4
 
5
  app = Flask(__name__)
6
 
 
8
  users = {}
9
  transfers = {}
10
 
11
+ def generate_short_id(length=8):
12
+ """
13
+ Генерирует короткий уникальный идентификатор для передачи файла.
14
+ """
15
+ while True:
16
+ token = ''.join(random.choices(string.ascii_letters + string.digits, k=length))
17
+ if token not in transfers:
18
+ return token
19
+
20
  @app.route('/register', methods=['POST'])
21
  def register():
22
  data = request.json
 
39
  if not filename or not ip or not port:
40
  return jsonify({'error': 'Отсутствуют необходимые параметры'}), 400
41
 
42
+ # Используем короткий идентификатор для передачи файла
43
+ transfer_id = generate_short_id(8)
44
  transfers[transfer_id] = {
45
  'filename': filename,
46
  'ip': ip,
 
48
  'filesize': filesize,
49
  'downloaded': False
50
  }
51
+ # Формируем короткую ссылку для скачивания (маршрут изменён на /d/)
52
+ download_link = request.host_url + 'd/' + transfer_id
53
  return jsonify({'download_link': download_link})
54
 
55
+ @app.route('/d/<transfer_id>', methods=['GET'])
56
  def get_transfer(transfer_id):
57
  transfer = transfers.get(transfer_id)
58
  if not transfer:
 
61
 
62
  if __name__ == '__main__':
63
  # Запускаем сервер на всех интерфейсах на порту 5000
64
+ app.run(host='0.0.0.0', port=5000)