save code
This commit is contained in:
+497
@@ -0,0 +1,497 @@
|
||||
[startup] worker-0 started → http://117.50.89.68:28889
|
||||
[startup] worker-1 started → http://117.50.226.22:28889
|
||||
[startup] proxy listening on 0.0.0.0:28888
|
||||
[startup] queue-0 → http://117.50.89.68:28889
|
||||
[startup] queue-1 → http://117.50.226.22:28889
|
||||
* Serving Flask app 'proxy'
|
||||
* Debug mode: off
|
||||
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
|
||||
* Running on all addresses (0.0.0.0)
|
||||
* Running on http://127.0.0.1:28888
|
||||
* Running on http://10.60.190.115:28888
|
||||
Press CTRL+C to quit
|
||||
221.218.70.61 - - [19/Mar/2026 22:33:30] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:33:32] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:35:17] "GET / HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:35:17] "GET /favicon.ico HTTP/1.1" 404 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:40:31] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:41:01] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:41:26] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:41:49] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:42:14] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:42:37] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:42:58] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:43:23] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:43:50] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:44:14] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:44:49] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:45:10] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:45:36] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:45:55] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:46:26] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:46:47] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:47:14] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:47:31] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:47:50] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 22:48:15] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
[startup] worker-0 started → http://117.50.89.68:28889
|
||||
[startup] worker-1 started → http://117.50.226.22:28889
|
||||
[startup] proxy listening on 0.0.0.0:28888
|
||||
[startup] queue-0 → http://117.50.89.68:28889
|
||||
[startup] queue-1 → http://117.50.226.22:28889
|
||||
* Serving Flask app 'proxy'
|
||||
* Debug mode: off
|
||||
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
|
||||
* Running on all addresses (0.0.0.0)
|
||||
* Running on http://127.0.0.1:28888
|
||||
* Running on http://10.60.190.115:28888
|
||||
Press CTRL+C to quit
|
||||
[startup] worker-0 started → http://117.50.89.68:28889
|
||||
[startup] worker-1 started → http://117.50.226.22:28889
|
||||
[startup] proxy listening on 0.0.0.0:28888
|
||||
[startup] queue-0 → http://117.50.89.68:28889
|
||||
[startup] queue-1 → http://117.50.226.22:28889
|
||||
* Serving Flask app 'proxy'
|
||||
* Debug mode: off
|
||||
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
|
||||
* Running on all addresses (0.0.0.0)
|
||||
* Running on http://127.0.0.1:28888
|
||||
* Running on http://10.60.190.115:28888
|
||||
Press CTRL+C to quit
|
||||
221.218.70.61 - - [19/Mar/2026 23:00:07] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:00:15] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:00:18] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:00:33] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:00:42] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:00:57] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:01:01] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:01:17] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:01:25] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:01:38] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:01:45] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:01:59] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:02:06] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:02:20] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:02:22] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:02:43] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:02:50] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:03:03] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:03:16] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:05:19] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:05:36] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:06:01] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:06:15] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:06:31] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:06:34] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:06:57] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:07:00] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
[proxy] 2026-03-19 22:59:53 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[proxy] 2026-03-19 22:59:53 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 22:59:53 end=2026-03-19 23:00:07 | 14.45s | status=200
|
||||
[proxy] 2026-03-19 23:00:07 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 22:59:53 end=2026-03-19 23:00:15 | 22.45s | status=200
|
||||
[proxy] 2026-03-19 23:00:16 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:00:07 end=2026-03-19 23:00:18 | 10.49s | status=200
|
||||
[proxy] 2026-03-19 23:00:18 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:00:18 end=2026-03-19 23:00:33 | 14.40s | status=200
|
||||
[proxy] 2026-03-19 23:00:33 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:00:16 end=2026-03-19 23:00:42 | 26.47s | status=200
|
||||
[proxy] 2026-03-19 23:00:42 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:00:42 end=2026-03-19 23:00:57 | 14.54s | status=200
|
||||
[proxy] 2026-03-19 23:00:57 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:00:42 end=2026-03-19 23:01:01 | 18.41s | status=200
|
||||
[proxy] 2026-03-19 23:01:01 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:01:01 end=2026-03-19 23:01:17 | 16.44s | status=200
|
||||
[proxy] 2026-03-19 23:01:17 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:01:01 end=2026-03-19 23:01:25 | 24.45s | status=200
|
||||
[proxy] 2026-03-19 23:01:26 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:01:17 end=2026-03-19 23:01:38 | 20.39s | status=200
|
||||
[proxy] 2026-03-19 23:01:38 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:01:26 end=2026-03-19 23:01:45 | 18.63s | status=200
|
||||
[proxy] 2026-03-19 23:01:45 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:01:38 end=2026-03-19 23:01:59 | 20.43s | status=200
|
||||
[proxy] 2026-03-19 23:01:59 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:01:45 end=2026-03-19 23:02:06 | 20.54s | status=200
|
||||
[proxy] 2026-03-19 23:02:06 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:01:59 end=2026-03-19 23:02:20 | 20.43s | status=200
|
||||
[proxy] 2026-03-19 23:02:20 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:02:06 end=2026-03-19 23:02:22 | 16.47s | status=200
|
||||
[proxy] 2026-03-19 23:02:23 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:02:20 end=2026-03-19 23:02:43 | 22.45s | status=200
|
||||
[proxy] 2026-03-19 23:02:43 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:02:23 end=2026-03-19 23:02:50 | 26.49s | status=200
|
||||
[proxy] 2026-03-19 23:02:51 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:02:43 end=2026-03-19 23:03:03 | 20.44s | status=200
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:02:51 end=2026-03-19 23:03:16 | 24.55s | status=200
|
||||
[proxy] 2026-03-19 23:04:58 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:04:58 end=2026-03-19 23:05:19 | 20.39s | status=200
|
||||
[proxy] 2026-03-19 23:05:19 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:05:19 end=2026-03-19 23:05:36 | 16.50s | status=200
|
||||
[proxy] 2026-03-19 23:05:36 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[proxy] 2026-03-19 23:06:00 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:05:36 end=2026-03-19 23:06:01 | 24.47s | status=200
|
||||
[proxy] 2026-03-19 23:06:01 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:06:00 end=2026-03-19 23:06:15 | 14.39s | status=200
|
||||
[proxy] 2026-03-19 23:06:15 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:06:01 end=2026-03-19 23:06:31 | 30.47s | status=200
|
||||
[proxy] 2026-03-19 23:06:32 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:06:15 end=2026-03-19 23:06:34 | 18.45s | status=200
|
||||
[proxy] 2026-03-19 23:06:34 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:06:34 end=2026-03-19 23:06:57 | 22.47s | status=200
|
||||
[proxy] 2026-03-19 23:06:57 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:06:32 end=2026-03-19 23:07:00 | 28.45s | status=200
|
||||
[proxy] 2026-03-19 23:07:01 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
221.218.70.61 - - [19/Mar/2026 23:07:27] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:07:31] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:07:47] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:07:58] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:08:10] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:08:23] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:08:35] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:08:54] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:09:03] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:09:11] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:09:29] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:09:44] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:09:45] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:09:58] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:10:15] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:10:31] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:10:38] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:10:58] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:11:00] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:11:21] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:11:27] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:11:48] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:11:50] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:12:06] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:12:10] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:12:29] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:12:29] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:12:56] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:07:00 end=2026-03-19 23:07:27 | 26.41s | status=200
|
||||
[proxy] 2026-03-19 23:07:27 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:07:01 end=2026-03-19 23:07:31 | 30.41s | status=200
|
||||
[proxy] 2026-03-19 23:07:31 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:07:27 end=2026-03-19 23:07:47 | 20.43s | status=200
|
||||
[proxy] 2026-03-19 23:07:48 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:07:31 end=2026-03-19 23:07:58 | 26.42s | status=200
|
||||
[proxy] 2026-03-19 23:07:59 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:07:48 end=2026-03-19 23:08:10 | 22.47s | status=200
|
||||
[proxy] 2026-03-19 23:08:10 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:07:59 end=2026-03-19 23:08:23 | 24.58s | status=200
|
||||
[proxy] 2026-03-19 23:08:24 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:08:10 end=2026-03-19 23:08:35 | 24.40s | status=200
|
||||
[proxy] 2026-03-19 23:08:35 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:08:24 end=2026-03-19 23:08:54 | 30.44s | status=200
|
||||
[proxy] 2026-03-19 23:08:55 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:08:35 end=2026-03-19 23:09:03 | 28.44s | status=200
|
||||
[proxy] 2026-03-19 23:09:04 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:08:55 end=2026-03-19 23:09:11 | 16.36s | status=200
|
||||
[proxy] 2026-03-19 23:09:12 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:09:04 end=2026-03-19 23:09:29 | 24.67s | status=200
|
||||
[proxy] 2026-03-19 23:09:29 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:09:12 end=2026-03-19 23:09:44 | 32.45s | status=200
|
||||
[proxy] 2026-03-19 23:09:44 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:09:29 end=2026-03-19 23:09:45 | 16.42s | status=200
|
||||
[proxy] 2026-03-19 23:09:46 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:09:46 end=2026-03-19 23:09:58 | 12.41s | status=200
|
||||
[proxy] 2026-03-19 23:09:58 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:09:44 end=2026-03-19 23:10:15 | 30.57s | status=200
|
||||
[proxy] 2026-03-19 23:10:15 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:10:15 end=2026-03-19 23:10:31 | 16.40s | status=200
|
||||
[proxy] 2026-03-19 23:10:32 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:10:15 end=2026-03-19 23:10:38 | 22.48s | status=200
|
||||
[proxy] 2026-03-19 23:10:38 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:10:38 end=2026-03-19 23:10:58 | 20.40s | status=200
|
||||
[proxy] 2026-03-19 23:10:59 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:10:32 end=2026-03-19 23:11:00 | 28.41s | status=200
|
||||
[proxy] 2026-03-19 23:11:01 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:11:00 end=2026-03-19 23:11:21 | 20.44s | status=200
|
||||
[proxy] 2026-03-19 23:11:21 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:11:01 end=2026-03-19 23:11:27 | 26.47s | status=200
|
||||
[proxy] 2026-03-19 23:11:28 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:11:28 end=2026-03-19 23:11:48 | 20.41s | status=200
|
||||
[proxy] 2026-03-19 23:11:48 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:11:21 end=2026-03-19 23:11:50 | 28.45s | status=200
|
||||
[proxy] 2026-03-19 23:11:50 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:11:50 end=2026-03-19 23:12:06 | 16.41s | status=200
|
||||
[proxy] 2026-03-19 23:12:06 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:11:50 end=2026-03-19 23:12:10 | 20.44s | status=200
|
||||
[proxy] 2026-03-19 23:12:11 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:12:06 end=2026-03-19 23:12:29 | 22.45s | status=200
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:12:11 end=2026-03-19 23:12:29 | 18.38s | status=200
|
||||
[proxy] 2026-03-19 23:12:29 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[proxy] 2026-03-19 23:12:30 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:12:29 end=2026-03-19 23:12:56 | 26.45s | status=200
|
||||
221.218.70.61 - - [19/Mar/2026 23:13:03] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:13:17] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:13:34] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:13:48] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:13:52] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:14:03] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:14:11] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:14:22] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:14:32] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:14:45] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:15:03] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:15:07] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:15:22] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:15:26] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:15:40] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:15:47] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:16:02] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:16:09] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:16:38] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:17:07] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:17:36] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:26:15] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:26:36] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:26:59] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:27:30] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:27:53] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:28:12] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:28:31] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
[proxy] 2026-03-19 23:12:57 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:12:30 end=2026-03-19 23:13:03 | 32.68s | status=200
|
||||
[proxy] 2026-03-19 23:13:03 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:12:57 end=2026-03-19 23:13:17 | 20.43s | status=200
|
||||
[proxy] 2026-03-19 23:13:18 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:13:03 end=2026-03-19 23:13:34 | 30.68s | status=200
|
||||
[proxy] 2026-03-19 23:13:34 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:13:18 end=2026-03-19 23:13:48 | 30.51s | status=200
|
||||
[proxy] 2026-03-19 23:13:49 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:13:34 end=2026-03-19 23:13:52 | 18.38s | status=200
|
||||
[proxy] 2026-03-19 23:13:53 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:13:49 end=2026-03-19 23:14:03 | 14.38s | status=200
|
||||
[proxy] 2026-03-19 23:14:03 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:13:53 end=2026-03-19 23:14:11 | 18.41s | status=200
|
||||
[proxy] 2026-03-19 23:14:11 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:14:03 end=2026-03-19 23:14:22 | 18.49s | status=200
|
||||
[proxy] 2026-03-19 23:14:22 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:14:11 end=2026-03-19 23:14:32 | 20.40s | status=200
|
||||
[proxy] 2026-03-19 23:14:32 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:14:22 end=2026-03-19 23:14:45 | 22.42s | status=200
|
||||
[proxy] 2026-03-19 23:14:45 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:14:32 end=2026-03-19 23:15:03 | 30.46s | status=200
|
||||
[proxy] 2026-03-19 23:15:03 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:14:45 end=2026-03-19 23:15:07 | 22.46s | status=200
|
||||
[proxy] 2026-03-19 23:15:08 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:15:03 end=2026-03-19 23:15:21 | 18.42s | status=200
|
||||
[proxy] 2026-03-19 23:15:22 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:15:08 end=2026-03-19 23:15:26 | 18.39s | status=200
|
||||
[proxy] 2026-03-19 23:15:27 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:15:22 end=2026-03-19 23:15:40 | 18.40s | status=200
|
||||
[proxy] 2026-03-19 23:15:41 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:15:27 end=2026-03-19 23:15:47 | 20.57s | status=200
|
||||
[proxy] 2026-03-19 23:15:48 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:15:48 end=2026-03-19 23:16:02 | 14.36s | status=200
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:15:41 end=2026-03-19 23:16:09 | 28.43s | status=200
|
||||
[proxy] 2026-03-19 23:16:10 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:16:10 end=2026-03-19 23:16:38 | 28.43s | status=200
|
||||
[proxy] 2026-03-19 23:16:38 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:16:38 end=2026-03-19 23:17:07 | 28.48s | status=200
|
||||
[proxy] 2026-03-19 23:17:07 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:17:07 end=2026-03-19 23:17:36 | 28.45s | status=200
|
||||
[proxy] 2026-03-19 23:25:53 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:25:53 end=2026-03-19 23:26:15 | 22.48s | status=200
|
||||
[proxy] 2026-03-19 23:26:16 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:26:16 end=2026-03-19 23:26:36 | 20.49s | status=200
|
||||
[proxy] 2026-03-19 23:26:37 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:26:37 end=2026-03-19 23:26:59 | 22.46s | status=200
|
||||
[proxy] 2026-03-19 23:27:00 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:27:00 end=2026-03-19 23:27:30 | 30.47s | status=200
|
||||
[proxy] 2026-03-19 23:27:30 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:27:30 end=2026-03-19 23:27:53 | 22.42s | status=200
|
||||
[proxy] 2026-03-19 23:27:53 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:27:53 end=2026-03-19 23:28:12 | 18.50s | status=200
|
||||
[proxy] 2026-03-19 23:28:12 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:28:12 end=2026-03-19 23:28:31 | 18.41s | status=200
|
||||
221.218.70.61 - - [19/Mar/2026 23:28:52] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:29:12] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:29:29] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:30:00] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:30:17] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:30:40] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:31:09] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:31:30] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:31:51] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:32:18] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:32:40] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:33:11] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:33:38] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:33:40] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:34:01] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:34:09] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:34:22] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:34:38] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:34:43] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:35:04] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:35:05] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:35:26] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:35:36] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:35:47] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:35:51] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:36:07] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:36:12] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
[proxy] 2026-03-19 23:28:31 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:28:31 end=2026-03-19 23:28:52 | 20.46s | status=200
|
||||
[proxy] 2026-03-19 23:28:52 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:28:52 end=2026-03-19 23:29:12 | 20.42s | status=200
|
||||
[proxy] 2026-03-19 23:29:13 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:29:13 end=2026-03-19 23:29:29 | 16.64s | status=200
|
||||
[proxy] 2026-03-19 23:29:30 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:29:30 end=2026-03-19 23:30:00 | 30.65s | status=200
|
||||
[proxy] 2026-03-19 23:30:01 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:30:01 end=2026-03-19 23:30:17 | 16.60s | status=200
|
||||
[proxy] 2026-03-19 23:30:18 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:30:18 end=2026-03-19 23:30:40 | 22.70s | status=200
|
||||
[proxy] 2026-03-19 23:30:41 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:30:41 end=2026-03-19 23:31:09 | 28.41s | status=200
|
||||
[proxy] 2026-03-19 23:31:10 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:31:10 end=2026-03-19 23:31:30 | 20.44s | status=200
|
||||
[proxy] 2026-03-19 23:31:31 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:31:31 end=2026-03-19 23:31:51 | 20.47s | status=200
|
||||
[proxy] 2026-03-19 23:31:51 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:31:51 end=2026-03-19 23:32:18 | 26.45s | status=200
|
||||
[proxy] 2026-03-19 23:32:18 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:32:18 end=2026-03-19 23:32:40 | 22.43s | status=200
|
||||
[proxy] 2026-03-19 23:32:41 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:32:41 end=2026-03-19 23:33:11 | 30.61s | status=200
|
||||
[proxy] 2026-03-19 23:33:12 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[proxy] 2026-03-19 23:33:17 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:33:17 end=2026-03-19 23:33:38 | 20.47s | status=200
|
||||
[proxy] 2026-03-19 23:33:38 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:33:12 end=2026-03-19 23:33:40 | 28.47s | status=200
|
||||
[proxy] 2026-03-19 23:33:41 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:33:40 end=2026-03-19 23:34:01 | 20.43s | status=200
|
||||
[proxy] 2026-03-19 23:34:01 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:33:41 end=2026-03-19 23:34:09 | 28.40s | status=200
|
||||
[proxy] 2026-03-19 23:34:10 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:34:01 end=2026-03-19 23:34:22 | 20.46s | status=200
|
||||
[proxy] 2026-03-19 23:34:22 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:34:10 end=2026-03-19 23:34:38 | 28.51s | status=200
|
||||
[proxy] 2026-03-19 23:34:39 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:34:22 end=2026-03-19 23:34:43 | 20.45s | status=200
|
||||
[proxy] 2026-03-19 23:34:43 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:34:43 end=2026-03-19 23:35:04 | 20.44s | status=200
|
||||
[proxy] 2026-03-19 23:35:04 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:34:39 end=2026-03-19 23:35:05 | 26.44s | status=200
|
||||
[proxy] 2026-03-19 23:35:06 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:35:05 end=2026-03-19 23:35:26 | 20.49s | status=200
|
||||
[proxy] 2026-03-19 23:35:26 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:35:06 end=2026-03-19 23:35:36 | 30.70s | status=200
|
||||
[proxy] 2026-03-19 23:35:37 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:35:26 end=2026-03-19 23:35:47 | 20.41s | status=200
|
||||
[proxy] 2026-03-19 23:35:47 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:35:37 end=2026-03-19 23:35:51 | 14.38s | status=200
|
||||
[proxy] 2026-03-19 23:35:51 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:35:47 end=2026-03-19 23:36:07 | 20.44s | status=200
|
||||
[proxy] 2026-03-19 23:36:08 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:35:51 end=2026-03-19 23:36:12 | 20.41s | status=200
|
||||
[proxy] 2026-03-19 23:36:12 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
221.218.70.61 - - [19/Mar/2026 23:36:28] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:36:41] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:36:49] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:36:57] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:37:10] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:37:18] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:37:31] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:37:47] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:37:52] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:38:13] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:38:35] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:38:56] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:39:17] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:39:38] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:39:59] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:40:20] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:40:41] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:41:02] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:41:23] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:41:44] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:42:05] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:42:26] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:42:47] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:43:08] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:43:28] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:43:49] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:44:10] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:44:31] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:36:08 end=2026-03-19 23:36:28 | 20.43s | status=200
|
||||
[proxy] 2026-03-19 23:36:29 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:36:12 end=2026-03-19 23:36:41 | 28.43s | status=200
|
||||
[proxy] 2026-03-19 23:36:41 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:36:29 end=2026-03-19 23:36:49 | 20.43s | status=200
|
||||
[proxy] 2026-03-19 23:36:50 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:36:41 end=2026-03-19 23:36:57 | 16.42s | status=200
|
||||
[proxy] 2026-03-19 23:36:58 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:36:50 end=2026-03-19 23:37:10 | 20.55s | status=200
|
||||
[proxy] 2026-03-19 23:37:11 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:36:58 end=2026-03-19 23:37:18 | 20.44s | status=200
|
||||
[proxy] 2026-03-19 23:37:19 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:37:11 end=2026-03-19 23:37:31 | 20.45s | status=200
|
||||
[proxy] 2026-03-19 23:37:31 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:37:19 end=2026-03-19 23:37:47 | 28.46s | status=200
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:37:31 end=2026-03-19 23:37:52 | 20.45s | status=200
|
||||
[proxy] 2026-03-19 23:37:52 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:37:52 end=2026-03-19 23:38:13 | 20.68s | status=200
|
||||
[proxy] 2026-03-19 23:38:14 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:38:14 end=2026-03-19 23:38:35 | 20.49s | status=200
|
||||
[proxy] 2026-03-19 23:38:35 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:38:35 end=2026-03-19 23:38:56 | 20.50s | status=200
|
||||
[proxy] 2026-03-19 23:38:56 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:38:56 end=2026-03-19 23:39:17 | 20.68s | status=200
|
||||
[proxy] 2026-03-19 23:39:18 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:39:18 end=2026-03-19 23:39:38 | 20.60s | status=200
|
||||
[proxy] 2026-03-19 23:39:39 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:39:39 end=2026-03-19 23:39:59 | 20.47s | status=200
|
||||
[proxy] 2026-03-19 23:40:00 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:40:00 end=2026-03-19 23:40:20 | 20.49s | status=200
|
||||
[proxy] 2026-03-19 23:40:20 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:40:20 end=2026-03-19 23:40:41 | 20.44s | status=200
|
||||
[proxy] 2026-03-19 23:40:41 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:40:41 end=2026-03-19 23:41:02 | 20.47s | status=200
|
||||
[proxy] 2026-03-19 23:41:02 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:41:02 end=2026-03-19 23:41:23 | 20.47s | status=200
|
||||
[proxy] 2026-03-19 23:41:23 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:41:23 end=2026-03-19 23:41:44 | 20.57s | status=200
|
||||
[proxy] 2026-03-19 23:41:44 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:41:44 end=2026-03-19 23:42:05 | 20.44s | status=200
|
||||
[proxy] 2026-03-19 23:42:05 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:42:05 end=2026-03-19 23:42:26 | 20.44s | status=200
|
||||
[proxy] 2026-03-19 23:42:26 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:42:26 end=2026-03-19 23:42:47 | 20.45s | status=200
|
||||
[proxy] 2026-03-19 23:42:47 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:42:47 end=2026-03-19 23:43:08 | 20.45s | status=200
|
||||
[proxy] 2026-03-19 23:43:08 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:43:08 end=2026-03-19 23:43:28 | 20.46s | status=200
|
||||
[proxy] 2026-03-19 23:43:29 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:43:29 end=2026-03-19 23:43:49 | 20.43s | status=200
|
||||
[proxy] 2026-03-19 23:43:50 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.89.68:28889/change_cloth_base64 | backend=http://117.50.89.68:28889 | start=2026-03-19 23:43:50 end=2026-03-19 23:44:10 | 20.56s | status=200
|
||||
[proxy] 2026-03-19 23:44:11 | 221.218.70.61 | queued → queue-1 (http://117.50.226.22:28889) | POST /change_cloth_base64?
|
||||
[proxy] 2026-03-19 23:44:15 | 221.218.70.61 | queued → queue-0 (http://117.50.89.68:28889) | POST /change_cloth_base64?
|
||||
[worker] POST http://117.50.226.22:28889/change_cloth_base64 | backend=http://117.50.226.22:28889 | start=2026-03-19 23:44:11 end=2026-03-19 23:44:31 | 20.47s | status=200
|
||||
221.218.70.61 - - [19/Mar/2026 23:44:34] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:44:52] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:45:04] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:45:13] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:45:25] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:45:34] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:45:48] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:45:55] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:46:13] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:46:16] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:46:37] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:46:41] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:46:56] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:47:02] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:47:20] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:47:23] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:47:43] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:47:44] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:48:05] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:48:10] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:48:30] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
221.218.70.61 - - [19/Mar/2026 23:48:39] "POST /change_cloth_base64 HTTP/1.1" 200 -
|
||||
@@ -0,0 +1 @@
|
||||
10266
|
||||
+118
@@ -0,0 +1,118 @@
|
||||
from flask import Flask, request, Response, send_from_directory
|
||||
import itertools
|
||||
import threading
|
||||
import queue
|
||||
import requests
|
||||
import time
|
||||
import os
|
||||
|
||||
app = Flask(__name__, static_folder=None)
|
||||
|
||||
BACKENDS = [
|
||||
"http://117.50.89.68:28889",
|
||||
"http://117.50.226.22:28889",
|
||||
]
|
||||
|
||||
# One queue per backend, auto-sized from BACKENDS
|
||||
queues = [queue.Queue() for _ in BACKENDS]
|
||||
_rr = itertools.count()
|
||||
|
||||
EXCLUDED_REQ_HEADERS = {"host", "content-length", "transfer-encoding", "connection"}
|
||||
EXCLUDED_RESP_HEADERS = {"content-encoding", "content-length", "transfer-encoding", "connection"}
|
||||
|
||||
STATIC_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "static")
|
||||
|
||||
|
||||
def _now():
|
||||
return time.strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
|
||||
def worker(q: queue.Queue, backend_url: str):
|
||||
"""Single worker thread per queue — processes requests one at a time."""
|
||||
while True:
|
||||
task = q.get()
|
||||
if task is None:
|
||||
break
|
||||
|
||||
method, url, headers, data, result_event, result_holder = task
|
||||
t_start = time.time()
|
||||
start_ts = _now()
|
||||
|
||||
try:
|
||||
resp = requests.request(
|
||||
method=method,
|
||||
url=url,
|
||||
headers=headers,
|
||||
data=data,
|
||||
allow_redirects=False,
|
||||
timeout=60,
|
||||
stream=True,
|
||||
)
|
||||
result_holder["response"] = resp
|
||||
result_holder["error"] = None
|
||||
except Exception as e:
|
||||
result_holder["response"] = None
|
||||
result_holder["error"] = str(e)
|
||||
finally:
|
||||
elapsed = time.time() - t_start
|
||||
end_ts = _now()
|
||||
status = resp.status_code if result_holder.get("response") else "ERR"
|
||||
print(
|
||||
f"[worker] {method} {url} | backend={backend_url} | "
|
||||
f"start={start_ts} end={end_ts} | "
|
||||
f"{elapsed:.2f}s | status={status}"
|
||||
)
|
||||
result_event.set()
|
||||
q.task_done()
|
||||
|
||||
|
||||
# Start one worker thread per queue
|
||||
for i, backend in enumerate(BACKENDS):
|
||||
t = threading.Thread(target=worker, args=(queues[i], backend), daemon=True, name=f"worker-{i}")
|
||||
t.start()
|
||||
print(f"[startup] worker-{i} started → {backend}")
|
||||
|
||||
|
||||
@app.route("/", methods=["GET"])
|
||||
def index():
|
||||
return send_from_directory(STATIC_DIR, "index.html")
|
||||
|
||||
|
||||
@app.route("/<path:path>", methods=["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"])
|
||||
def proxy(path):
|
||||
idx = next(_rr) % len(queues)
|
||||
|
||||
# Build the full target URL (preserves query string)
|
||||
target_url = BACKENDS[idx] + request.full_path.rstrip("?")
|
||||
|
||||
# Filter hop-by-hop and host headers before forwarding
|
||||
headers = {k: v for k, v in request.headers.items() if k.lower() not in EXCLUDED_REQ_HEADERS}
|
||||
|
||||
result_event = threading.Event()
|
||||
result_holder: dict = {}
|
||||
|
||||
task = (request.method, target_url, headers, request.get_data(), result_event, result_holder)
|
||||
queues[idx].put(task)
|
||||
client_ip = request.remote_addr
|
||||
print(f"[proxy] {_now()} | {client_ip} | queued → queue-{idx} ({BACKENDS[idx]}) | {request.method} {request.full_path}")
|
||||
|
||||
# Block until the worker finishes (or timeout)
|
||||
if not result_event.wait(timeout=65):
|
||||
print(f"[proxy] {_now()} | {client_ip} | TIMEOUT → queue-{idx} ({BACKENDS[idx]}) | {request.method} {request.full_path}")
|
||||
return Response("Gateway Timeout", status=504)
|
||||
|
||||
if result_holder.get("error"):
|
||||
print(f"[proxy] {_now()} | {client_ip} | ERROR → {result_holder['error']}")
|
||||
return Response(f"Bad Gateway: {result_holder['error']}", status=502)
|
||||
|
||||
resp = result_holder["response"]
|
||||
resp_headers = {k: v for k, v in resp.headers.items() if k.lower() not in EXCLUDED_RESP_HEADERS}
|
||||
|
||||
return Response(resp.content, status=resp.status_code, headers=resp_headers)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
print(f"[startup] proxy listening on 0.0.0.0:28888")
|
||||
for i, b in enumerate(BACKENDS):
|
||||
print(f"[startup] queue-{i} → {b}")
|
||||
app.run(host="0.0.0.0", port=28888, threaded=True)
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
PID_FILE=proxy.pid
|
||||
LOG_FILE=proxy.log
|
||||
|
||||
if [ -f "$PID_FILE" ] && kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then
|
||||
echo "already running (pid $(cat "$PID_FILE"))"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
nohup python3 proxy.py >> "$LOG_FILE" 2>&1 &
|
||||
echo $! > "$PID_FILE"
|
||||
echo "started (pid $!) → log: $LOG_FILE"
|
||||
@@ -0,0 +1,374 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>AI 换装测试</title>
|
||||
<style>
|
||||
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
|
||||
body {
|
||||
font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
|
||||
background: #0f0f13;
|
||||
color: #e0e0e0;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 32px 16px 64px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2rem;
|
||||
font-weight: 700;
|
||||
background: linear-gradient(135deg, #a78bfa, #60a5fa, #34d399);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
margin-bottom: 8px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
font-size: 0.9rem;
|
||||
color: #888;
|
||||
margin-bottom: 40px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.upload-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 20px;
|
||||
width: 100%;
|
||||
max-width: 960px;
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.upload-card {
|
||||
background: #1a1a24;
|
||||
border: 2px dashed #333;
|
||||
border-radius: 16px;
|
||||
padding: 20px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
cursor: pointer;
|
||||
transition: border-color 0.2s, background 0.2s;
|
||||
position: relative;
|
||||
min-height: 280px;
|
||||
}
|
||||
|
||||
.upload-card:hover { border-color: #7c3aed; background: #1e1e2e; }
|
||||
.upload-card.has-image { border-style: solid; border-color: #6d28d9; }
|
||||
.upload-card.optional { border-color: #2a2a3a; }
|
||||
.upload-card.optional .upload-label { color: #8b80b0; }
|
||||
|
||||
.upload-card input[type="file"] {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
opacity: 0;
|
||||
cursor: pointer;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.upload-icon { font-size: 2.5rem; line-height: 1; }
|
||||
.upload-label { font-size: 1rem; font-weight: 600; color: #c4b5fd; }
|
||||
.upload-hint { font-size: 0.78rem; color: #666; text-align: center; }
|
||||
|
||||
.badge-optional {
|
||||
font-size: 0.68rem;
|
||||
background: #2a2a3a;
|
||||
color: #777;
|
||||
border-radius: 6px;
|
||||
padding: 2px 8px;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
.preview-img {
|
||||
width: 100%;
|
||||
max-height: 200px;
|
||||
object-fit: contain;
|
||||
border-radius: 10px;
|
||||
display: none;
|
||||
}
|
||||
.preview-img.visible { display: block; }
|
||||
|
||||
.btn-clear {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
background: #3a1a1a;
|
||||
border: none;
|
||||
color: #f87171;
|
||||
border-radius: 50%;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
font-size: 0.8rem;
|
||||
cursor: pointer;
|
||||
display: none;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
z-index: 1;
|
||||
}
|
||||
.btn-clear.visible { display: flex; }
|
||||
|
||||
.btn-run {
|
||||
padding: 14px 56px;
|
||||
font-size: 1.05rem;
|
||||
font-weight: 700;
|
||||
border: none;
|
||||
border-radius: 50px;
|
||||
background: linear-gradient(135deg, #7c3aed, #2563eb);
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
transition: opacity 0.2s, transform 0.1s;
|
||||
}
|
||||
.btn-run:hover:not(:disabled) { opacity: 0.9; transform: translateY(-1px); }
|
||||
.btn-run:disabled { opacity: 0.45; cursor: not-allowed; }
|
||||
|
||||
.status-bar {
|
||||
margin-top: 20px;
|
||||
font-size: 0.9rem;
|
||||
color: #888;
|
||||
min-height: 24px;
|
||||
text-align: center;
|
||||
}
|
||||
.status-bar.running { color: #60a5fa; }
|
||||
.status-bar.success { color: #34d399; }
|
||||
.status-bar.error { color: #f87171; }
|
||||
|
||||
.spinner {
|
||||
display: inline-block;
|
||||
width: 14px; height: 14px;
|
||||
border: 2px solid #60a5fa44;
|
||||
border-top-color: #60a5fa;
|
||||
border-radius: 50%;
|
||||
animation: spin 0.8s linear infinite;
|
||||
vertical-align: middle;
|
||||
margin-right: 6px;
|
||||
}
|
||||
@keyframes spin { to { transform: rotate(360deg); } }
|
||||
|
||||
.result-section {
|
||||
margin-top: 40px;
|
||||
width: 100%;
|
||||
max-width: 500px;
|
||||
display: none;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 16px;
|
||||
}
|
||||
.result-section.visible { display: flex; }
|
||||
|
||||
.result-title { font-size: 1.1rem; font-weight: 600; color: #a78bfa; }
|
||||
|
||||
.result-img {
|
||||
width: 100%;
|
||||
border-radius: 16px;
|
||||
box-shadow: 0 0 40px #7c3aed44;
|
||||
}
|
||||
|
||||
.btn-download {
|
||||
padding: 10px 36px;
|
||||
border: 2px solid #7c3aed;
|
||||
border-radius: 50px;
|
||||
background: transparent;
|
||||
color: #a78bfa;
|
||||
font-size: 0.9rem;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.btn-download:hover { background: #7c3aed22; }
|
||||
|
||||
.raw-resp {
|
||||
width: 100%;
|
||||
max-width: 960px;
|
||||
margin-top: 32px;
|
||||
background: #1a1a24;
|
||||
border-radius: 12px;
|
||||
padding: 16px;
|
||||
font-size: 0.78rem;
|
||||
color: #888;
|
||||
word-break: break-all;
|
||||
display: none;
|
||||
}
|
||||
.raw-resp.visible { display: block; }
|
||||
.raw-resp pre { white-space: pre-wrap; }
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.upload-grid { grid-template-columns: 1fr; }
|
||||
h1 { font-size: 1.5rem; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>AI 换装测试</h1>
|
||||
<p class="subtitle">上传模特和衣服图片,调用 /change_cloth_base64 接口测试</p>
|
||||
|
||||
<div class="upload-grid">
|
||||
<!-- 模特 -->
|
||||
<div class="upload-card" id="card-human">
|
||||
<button class="btn-clear" id="clear-human" title="清除">✕</button>
|
||||
<input type="file" accept="image/*" id="input-human" />
|
||||
<div class="upload-icon">🧍</div>
|
||||
<div class="upload-label">模特图片</div>
|
||||
<div class="upload-hint">human_img · 必填</div>
|
||||
<img class="preview-img" id="preview-human" alt="模特预览" />
|
||||
</div>
|
||||
|
||||
<!-- 上衣 -->
|
||||
<div class="upload-card" id="card-cloth">
|
||||
<button class="btn-clear" id="clear-cloth" title="清除">✕</button>
|
||||
<input type="file" accept="image/*" id="input-cloth" />
|
||||
<div class="upload-icon">👕</div>
|
||||
<div class="upload-label">上衣图片</div>
|
||||
<div class="upload-hint">cloth_img · 必填</div>
|
||||
<img class="preview-img" id="preview-cloth" alt="上衣预览" />
|
||||
</div>
|
||||
|
||||
<!-- 裤子(可选) -->
|
||||
<div class="upload-card optional" id="card-kuzi">
|
||||
<button class="btn-clear" id="clear-kuzi" title="清除">✕</button>
|
||||
<input type="file" accept="image/*" id="input-kuzi" />
|
||||
<div class="upload-icon">👖</div>
|
||||
<div class="upload-label">裤子图片</div>
|
||||
<div class="upload-hint">kuzi_img · 可选</div>
|
||||
<span class="badge-optional">有则走 8888 服务,无则走 8889</span>
|
||||
<img class="preview-img" id="preview-kuzi" alt="裤子预览" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button class="btn-run" id="btn-run" disabled>开始换装</button>
|
||||
<div class="status-bar" id="status-bar"></div>
|
||||
|
||||
<div class="result-section" id="result-section">
|
||||
<div class="result-title">换装结果</div>
|
||||
<img class="result-img" id="result-img" alt="换装结果" />
|
||||
<button class="btn-download" id="btn-download">下载图片</button>
|
||||
</div>
|
||||
|
||||
<div class="raw-resp" id="raw-resp">
|
||||
<div style="color:#555;margin-bottom:8px;font-size:0.72rem;">接口原始响应(data 字段已截断)</div>
|
||||
<pre id="raw-text"></pre>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const images = { human: null, cloth: null, kuzi: null };
|
||||
|
||||
function setupUpload(inputId, previewId, cardId, clearId, key) {
|
||||
const input = document.getElementById(inputId);
|
||||
const preview = document.getElementById(previewId);
|
||||
const card = document.getElementById(cardId);
|
||||
const clearBtn= document.getElementById(clearId);
|
||||
|
||||
input.addEventListener('change', (e) => {
|
||||
const file = e.target.files[0];
|
||||
if (!file) return;
|
||||
const reader = new FileReader();
|
||||
reader.onload = (ev) => {
|
||||
images[key] = ev.target.result;
|
||||
preview.src = ev.target.result;
|
||||
preview.classList.add('visible');
|
||||
card.classList.add('has-image');
|
||||
clearBtn.classList.add('visible');
|
||||
updateRunButton();
|
||||
};
|
||||
reader.readAsDataURL(file);
|
||||
});
|
||||
|
||||
clearBtn.addEventListener('click', (e) => {
|
||||
e.stopPropagation();
|
||||
images[key] = null;
|
||||
input.value = '';
|
||||
preview.src = '';
|
||||
preview.classList.remove('visible');
|
||||
card.classList.remove('has-image');
|
||||
clearBtn.classList.remove('visible');
|
||||
updateRunButton();
|
||||
});
|
||||
}
|
||||
|
||||
setupUpload('input-human', 'preview-human', 'card-human', 'clear-human', 'human');
|
||||
setupUpload('input-cloth', 'preview-cloth', 'card-cloth', 'clear-cloth', 'cloth');
|
||||
setupUpload('input-kuzi', 'preview-kuzi', 'card-kuzi', 'clear-kuzi', 'kuzi');
|
||||
|
||||
function updateRunButton() {
|
||||
document.getElementById('btn-run').disabled = !(images.human && images.cloth);
|
||||
}
|
||||
|
||||
function setStatus(msg, cls = '') {
|
||||
const el = document.getElementById('status-bar');
|
||||
el.className = 'status-bar ' + cls;
|
||||
el.innerHTML = msg;
|
||||
}
|
||||
|
||||
function elapsed(start) {
|
||||
return Math.round((Date.now() - start) / 1000) + '秒';
|
||||
}
|
||||
|
||||
document.getElementById('btn-run').addEventListener('click', async () => {
|
||||
const btn = document.getElementById('btn-run');
|
||||
const resultSection = document.getElementById('result-section');
|
||||
const resultImg = document.getElementById('result-img');
|
||||
const rawResp = document.getElementById('raw-resp');
|
||||
const rawText = document.getElementById('raw-text');
|
||||
|
||||
btn.disabled = true;
|
||||
resultSection.classList.remove('visible');
|
||||
rawResp.classList.remove('visible');
|
||||
|
||||
const start = Date.now();
|
||||
let timer = setInterval(() => {
|
||||
setStatus(`<span class="spinner"></span>正在换装中,请稍候… 已等待 ${elapsed(start)}`, 'running');
|
||||
}, 1000);
|
||||
setStatus('<span class="spinner"></span>正在提交请求…', 'running');
|
||||
|
||||
const body = {
|
||||
human_img: images.human,
|
||||
cloth_img: images.cloth,
|
||||
};
|
||||
if (images.kuzi) body.kuzi_img = images.kuzi;
|
||||
|
||||
try {
|
||||
const resp = await fetch('/change_cloth_base64', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(body),
|
||||
});
|
||||
|
||||
clearInterval(timer);
|
||||
const data = await resp.json();
|
||||
|
||||
// 显示原始响应
|
||||
rawText.textContent = JSON.stringify(data, null, 2);
|
||||
rawResp.classList.add('visible');
|
||||
|
||||
if (data.ret !== 0 || !data.data) {
|
||||
throw new Error(data.msg || '接口返回失败');
|
||||
}
|
||||
|
||||
resultImg.src = data.data;
|
||||
resultSection.classList.add('visible');
|
||||
setStatus(`✅ 换装完成!耗时 ${elapsed(start)}`, 'success');
|
||||
|
||||
document.getElementById('btn-download').onclick = () => {
|
||||
const a = document.createElement('a');
|
||||
a.href = data.data;
|
||||
a.download = `tryon_${Date.now()}.png`;
|
||||
a.target = '_blank';
|
||||
a.click();
|
||||
};
|
||||
|
||||
} catch (err) {
|
||||
clearInterval(timer);
|
||||
setStatus(`❌ 错误:${err.message}`, 'error');
|
||||
} finally {
|
||||
updateRunButton();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+19
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
PID_FILE=proxy.pid
|
||||
|
||||
if [ ! -f "$PID_FILE" ]; then
|
||||
echo "not running (no pid file)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PID=$(cat "$PID_FILE")
|
||||
if kill -0 "$PID" 2>/dev/null; then
|
||||
kill "$PID"
|
||||
rm -f "$PID_FILE"
|
||||
echo "stopped (pid $PID)"
|
||||
else
|
||||
rm -f "$PID_FILE"
|
||||
echo "stale pid file removed (process $PID not found)"
|
||||
fi
|
||||
Reference in New Issue
Block a user