From 10dea9f7fd479da2b5cb11b25f6c4ba6e6504f13 Mon Sep 17 00:00:00 2001 From: esoe Date: Thu, 10 Oct 2024 09:19:52 +0300 Subject: [PATCH] build meta in fs --- face/logs/teh.log | 9 +- face/logs/teh.log.2024-09-27.0.gz | Bin 0 -> 413 bytes .../v1}/mainframe/MainframeController.java | 4 +- storage/logs/teh.log | 56 +--- storage/logs/teh.log.2024-10-02.0.gz | Bin 1114 -> 0 bytes storage/logs/teh.log.2024-10-07.0.gz | Bin 0 -> 1350 bytes storage/logs/teh.log.2024-10-08.0.gz | Bin 0 -> 5721 bytes storage/logs/teh.log.2024-10-09.0.gz | Bin 0 -> 692 bytes .../storage/config/StorageConfig.java | 9 +- .../controllers/face/FaceController.java | 30 ++- .../storage/models/FileMetadata.java | 242 ++++-------------- .../storage/models/xlsx/Xlsx.java | 17 +- .../storage/models/xlsx/XlsxCell.java | 44 +--- .../storage/services/FileService.java | 14 + .../storage/services/FileServiceImpl.java | 179 ++++++++++++- .../main/resources/templates/mainframe.html | 7 +- .../main/resources/templates/view-xlsx.html | 8 +- 17 files changed, 300 insertions(+), 319 deletions(-) create mode 100644 face/logs/teh.log.2024-09-27.0.gz rename face/src/main/java/gsp/technologies/face/controllers/{ => face/v1}/mainframe/MainframeController.java (66%) delete mode 100644 storage/logs/teh.log.2024-10-02.0.gz create mode 100644 storage/logs/teh.log.2024-10-07.0.gz create mode 100644 storage/logs/teh.log.2024-10-08.0.gz create mode 100644 storage/logs/teh.log.2024-10-09.0.gz diff --git a/face/logs/teh.log b/face/logs/teh.log index 27b4982..b3954d1 100644 --- a/face/logs/teh.log +++ b/face/logs/teh.log @@ -1,3 +1,6 @@ -{"@timestamp":"2024-09-27T09:40:13.345331100Z","log.level":"INFO","process.pid":17820,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.face.FaceApplicationTests","message":"Starting FaceApplicationTests using Java 17.0.7 with PID 17820 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\face)","ecs.version":"8.11"} -{"@timestamp":"2024-09-27T09:40:13.351664600Z","log.level":"INFO","process.pid":17820,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.face.FaceApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} -{"@timestamp":"2024-09-27T09:40:14.875525500Z","log.level":"INFO","process.pid":17820,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.face.FaceApplicationTests","message":"Started FaceApplicationTests in 2.023 seconds (process running for 3.114)","ecs.version":"8.11"} +{"@timestamp":"2024-10-07T09:46:40.606299400Z","log.level":"INFO","process.pid":12004,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.face.FaceApplicationTests","message":"Starting FaceApplicationTests using Java 17.0.7 with PID 12004 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\face)","ecs.version":"8.11"} +{"@timestamp":"2024-10-07T09:46:40.623448100Z","log.level":"INFO","process.pid":12004,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.face.FaceApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} +{"@timestamp":"2024-10-07T09:46:42.184170300Z","log.level":"INFO","process.pid":12004,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.face.FaceApplicationTests","message":"Started FaceApplicationTests in 2.021 seconds (process running for 3.086)","ecs.version":"8.11"} +{"@timestamp":"2024-10-07T09:57:48.533500500Z","log.level":"INFO","process.pid":24652,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.face.FaceApplicationTests","message":"Starting FaceApplicationTests using Java 17.0.7 with PID 24652 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\face)","ecs.version":"8.11"} +{"@timestamp":"2024-10-07T09:57:48.545487800Z","log.level":"INFO","process.pid":24652,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.face.FaceApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} +{"@timestamp":"2024-10-07T09:57:50.201333800Z","log.level":"INFO","process.pid":24652,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.face.FaceApplicationTests","message":"Started FaceApplicationTests in 2.165 seconds (process running for 3.184)","ecs.version":"8.11"} diff --git a/face/logs/teh.log.2024-09-27.0.gz b/face/logs/teh.log.2024-09-27.0.gz new file mode 100644 index 0000000000000000000000000000000000000000..2ebe6f82b51d5d9597dab4e4e9253f1ac5abc9a7 GIT binary patch literal 413 zcmV;O0b>3iiwFP!00000|K*cSYuqpphVT6qgH9avtlh#%~njeg)Gt~gTi&F%F!LUZs2W8|~#SSy=tA^x$n52!ot^n_F}Y3ryUVpy%g zBki@p6S`uE);kKw6N+xN!Mh1vqR1}zZZRpRowW1abI)C{lMau^f&DOGAUwpGCp3HK z30aIhzs;}d^Ld^}YjkdTPijP}Bvqmwa<{vrL$Ypwmoj0AIrLSp8f3!-Z{U|rd)VDv z!Cy7tEarOb;NcNETo)P`tb;GDQs3!6Ds`YrU3s(Q9f=uQN2!E+rSg;?X(BZ7M4l~| zlKuYh^a=-Sx!F{kckJM;2TiZ72((vkM}&y!9C|&D*}MmBenRpf$)8>?V>+g_px6N^ z_GSkvzHREdsOxv^z}?{nUOXYXhJuTtBv*`gU4*m4@(>p1vO~QOP?Fr$fA8QAd?oxo H$^-xac`?cR literal 0 HcmV?d00001 diff --git a/face/src/main/java/gsp/technologies/face/controllers/mainframe/MainframeController.java b/face/src/main/java/gsp/technologies/face/controllers/face/v1/mainframe/MainframeController.java similarity index 66% rename from face/src/main/java/gsp/technologies/face/controllers/mainframe/MainframeController.java rename to face/src/main/java/gsp/technologies/face/controllers/face/v1/mainframe/MainframeController.java index 7f729f7..6eb2863 100644 --- a/face/src/main/java/gsp/technologies/face/controllers/mainframe/MainframeController.java +++ b/face/src/main/java/gsp/technologies/face/controllers/face/v1/mainframe/MainframeController.java @@ -1,4 +1,4 @@ -package gsp.technologies.face.controllers.mainframe; +package gsp.technologies.face.controllers.face.v1.mainframe; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @@ -6,7 +6,7 @@ import org.springframework.web.bind.annotation.GetMapping; @Controller public class MainframeController { - @GetMapping("/mainframe") + @GetMapping("/face/v1/mainframe") public String mainframe(){ return "mainframe"; } diff --git a/storage/logs/teh.log b/storage/logs/teh.log index 564dca7..46f5913 100644 --- a/storage/logs/teh.log +++ b/storage/logs/teh.log @@ -1,44 +1,12 @@ -{"@timestamp":"2024-10-07T06:17:42.149368200Z","log.level":"INFO","process.pid":23304,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Starting StorageApplicationTests using Java 17.0.7 with PID 23304 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\storage)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T06:17:42.167178900Z","log.level":"INFO","process.pid":23304,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T06:17:43.318127400Z","log.level":"INFO","process.pid":23304,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.services.FileServiceImpl","message":"Создание директории root(), для хранения файлов: C:\\Users\\devuser\\Documents\\code\\teh\\storage\\uploads","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T06:17:44.272225100Z","log.level":"INFO","process.pid":23304,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Started StorageApplicationTests in 2.597 seconds (process running for 3.701)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T06:46:48.074221100Z","log.level":"INFO","process.pid":21364,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Starting StorageApplicationTests using Java 17.0.7 with PID 21364 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\storage)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T06:46:48.080224400Z","log.level":"INFO","process.pid":21364,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T06:46:49.085866200Z","log.level":"INFO","process.pid":21364,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.services.FileServiceImpl","message":"Создание директории root(), для хранения файлов: C:\\Users\\devuser\\Documents\\code\\teh\\storage\\uploads","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T06:46:49.935110700Z","log.level":"INFO","process.pid":21364,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Started StorageApplicationTests in 2.317 seconds (process running for 3.435)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T06:50:12.532607900Z","log.level":"INFO","process.pid":26440,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Starting StorageApplicationTests using Java 17.0.7 with PID 26440 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\storage)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T06:50:12.538493300Z","log.level":"INFO","process.pid":26440,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T06:50:13.645177Z","log.level":"INFO","process.pid":26440,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.services.FileServiceImpl","message":"Создание директории root(), для хранения файлов: C:\\Users\\devuser\\Documents\\code\\teh\\storage\\uploads","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T06:50:14.502616900Z","log.level":"INFO","process.pid":26440,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Started StorageApplicationTests in 2.432 seconds (process running for 3.622)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T06:50:47.809359700Z","log.level":"INFO","process.pid":25352,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Starting StorageApplicationTests using Java 17.0.7 with PID 25352 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\storage)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T06:50:47.815104200Z","log.level":"INFO","process.pid":25352,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T06:50:48.695159500Z","log.level":"INFO","process.pid":25352,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.services.FileServiceImpl","message":"Создание директории root(), для хранения файлов: C:\\Users\\devuser\\Documents\\code\\teh\\storage\\uploads","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T06:50:49.541079Z","log.level":"INFO","process.pid":25352,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Started StorageApplicationTests in 2.182 seconds (process running for 3.26)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T07:59:02.992260100Z","log.level":"INFO","process.pid":21624,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Starting StorageApplicationTests using Java 17.0.7 with PID 21624 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\storage)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T07:59:02.998266Z","log.level":"INFO","process.pid":21624,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T07:59:03.947325700Z","log.level":"INFO","process.pid":21624,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.services.FileServiceImpl","message":"Создание директории root(), для хранения файлов: C:\\Users\\devuser\\Documents\\code\\teh\\storage\\uploads","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T07:59:04.860425700Z","log.level":"INFO","process.pid":21624,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Started StorageApplicationTests in 2.399 seconds (process running for 3.418)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T08:18:05.931201100Z","log.level":"INFO","process.pid":24520,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Starting StorageApplicationTests using Java 17.0.7 with PID 24520 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\storage)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T08:18:05.936209200Z","log.level":"INFO","process.pid":24520,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T08:18:06.990442400Z","log.level":"INFO","process.pid":24520,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.services.FileServiceImpl","message":"Создание директории root(), для хранения файлов: C:\\Users\\devuser\\Documents\\code\\teh\\storage\\uploads","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T08:18:07.768393700Z","log.level":"INFO","process.pid":24520,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Started StorageApplicationTests in 2.29 seconds (process running for 3.384)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T08:23:00.031509500Z","log.level":"INFO","process.pid":25924,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Starting StorageApplicationTests using Java 17.0.7 with PID 25924 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\storage)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T08:23:00.037576800Z","log.level":"INFO","process.pid":25924,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T08:23:00.979830700Z","log.level":"INFO","process.pid":25924,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.services.FileServiceImpl","message":"Создание директории root(), для хранения файлов: C:\\Users\\devuser\\Documents\\code\\teh\\storage\\uploads","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T08:23:01.862505100Z","log.level":"INFO","process.pid":25924,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Started StorageApplicationTests in 2.284 seconds (process running for 3.335)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T09:05:18.087110100Z","log.level":"INFO","process.pid":15996,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Starting StorageApplicationTests using Java 17.0.7 with PID 15996 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\storage)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T09:05:18.092199600Z","log.level":"INFO","process.pid":15996,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T09:05:19.225407400Z","log.level":"INFO","process.pid":15996,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.services.FileServiceImpl","message":"Создание директории root(), для хранения файлов: C:\\Users\\devuser\\Documents\\code\\teh\\storage\\uploads","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T09:05:20.108054800Z","log.level":"INFO","process.pid":15996,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Started StorageApplicationTests in 2.537 seconds (process running for 3.699)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T09:07:17.978949800Z","log.level":"INFO","process.pid":14524,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Starting StorageApplicationTests using Java 17.0.7 with PID 14524 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\storage)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T09:07:17.984286200Z","log.level":"INFO","process.pid":14524,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T09:07:19.017424400Z","log.level":"INFO","process.pid":14524,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.services.FileServiceImpl","message":"Создание директории root(), для хранения файлов: C:\\Users\\devuser\\Documents\\code\\teh\\storage\\uploads","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T09:07:19.882161300Z","log.level":"INFO","process.pid":14524,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Started StorageApplicationTests in 2.392 seconds (process running for 3.458)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T09:12:54.924473800Z","log.level":"INFO","process.pid":20144,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Starting StorageApplicationTests using Java 17.0.7 with PID 20144 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\storage)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T09:12:54.936749300Z","log.level":"INFO","process.pid":20144,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T09:12:55.942491700Z","log.level":"INFO","process.pid":20144,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.services.FileServiceImpl","message":"Создание директории root(), для хранения файлов: C:\\Users\\devuser\\Documents\\code\\teh\\storage\\uploads","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T09:12:56.718191700Z","log.level":"INFO","process.pid":20144,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Started StorageApplicationTests in 2.411 seconds (process running for 3.658)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T09:22:32.467836Z","log.level":"INFO","process.pid":20576,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Starting StorageApplicationTests using Java 17.0.7 with PID 20576 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\storage)","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T09:22:32.472831900Z","log.level":"INFO","process.pid":20576,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T09:22:33.343250900Z","log.level":"INFO","process.pid":20576,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.services.FileServiceImpl","message":"Создание директории root(), для хранения файлов: C:\\Users\\devuser\\Documents\\code\\teh\\storage\\uploads","ecs.version":"8.11"} -{"@timestamp":"2024-10-07T09:22:34.226531500Z","log.level":"INFO","process.pid":20576,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Started StorageApplicationTests in 2.217 seconds (process running for 3.275)","ecs.version":"8.11"} +{"@timestamp":"2024-10-10T05:48:48.071013600Z","log.level":"INFO","process.pid":5360,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Starting StorageApplicationTests using Java 17.0.7 with PID 5360 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\storage)","ecs.version":"8.11"} +{"@timestamp":"2024-10-10T05:48:48.083108600Z","log.level":"INFO","process.pid":5360,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} +{"@timestamp":"2024-10-10T05:48:49.021430Z","log.level":"INFO","process.pid":5360,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.services.FileServiceImpl","message":"Создание директории root(), для хранения файлов: C:\\Users\\devuser\\Documents\\code\\teh\\storage\\uploads","ecs.version":"8.11"} +{"@timestamp":"2024-10-10T05:48:49.895543100Z","log.level":"INFO","process.pid":5360,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Started StorageApplicationTests in 2.251 seconds (process running for 3.281)","ecs.version":"8.11"} +{"@timestamp":"2024-10-10T06:10:14.369765600Z","log.level":"INFO","process.pid":5140,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Starting StorageApplicationTests using Java 17.0.7 with PID 5140 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\storage)","ecs.version":"8.11"} +{"@timestamp":"2024-10-10T06:10:14.376062200Z","log.level":"INFO","process.pid":5140,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} +{"@timestamp":"2024-10-10T06:10:15.441671200Z","log.level":"INFO","process.pid":5140,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.services.FileServiceImpl","message":"Создание директории root(), для хранения файлов: C:\\Users\\devuser\\Documents\\code\\teh\\storage\\uploads","ecs.version":"8.11"} +{"@timestamp":"2024-10-10T06:10:16.498992600Z","log.level":"INFO","process.pid":5140,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Started StorageApplicationTests in 2.565 seconds (process running for 3.659)","ecs.version":"8.11"} +{"@timestamp":"2024-10-10T06:16:30.410659500Z","log.level":"INFO","process.pid":16080,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Starting StorageApplicationTests using Java 17.0.7 with PID 16080 (started by devuser in C:\\Users\\devuser\\Documents\\code\\teh\\storage)","ecs.version":"8.11"} +{"@timestamp":"2024-10-10T06:16:30.416388500Z","log.level":"INFO","process.pid":16080,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"No active profile set, falling back to 1 default profile: \"default\"","ecs.version":"8.11"} +{"@timestamp":"2024-10-10T06:16:31.402964900Z","log.level":"INFO","process.pid":16080,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.services.FileServiceImpl","message":"Создание директории root(), для хранения файлов: C:\\Users\\devuser\\Documents\\code\\teh\\storage\\uploads","ecs.version":"8.11"} +{"@timestamp":"2024-10-10T06:16:32.211194900Z","log.level":"INFO","process.pid":16080,"process.thread.name":"main","service.name":"face","service.version":"1","service.environment":"Production","service.node.name":"Primary","log.logger":"gsp.technologies.storage.StorageApplicationTests","message":"Started StorageApplicationTests in 2.244 seconds (process running for 3.327)","ecs.version":"8.11"} diff --git a/storage/logs/teh.log.2024-10-02.0.gz b/storage/logs/teh.log.2024-10-02.0.gz deleted file mode 100644 index 1bf8428025159c0b2db821a3c33b86cfae197fea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1114 zcmV-g1f}~QiwFP!00000|LvO1irhvJ$M1QHW=?BZH~sygQ$mbkb8r^cxddHgP4BG8 zj5J7^3C09MNX~hNyg>+AypD;VLHkCjp3#2fV5TDvi0R2`HPxlwR{f~@tE=^9@_Ab< zT+?QYw^%_mxdIbwdMTx#l()1g+Zql^3rs=aPU-@SRTMmzvrmee5(|)y2U|BA29!1Jv zN+&;j_9ld-C4$IfXZfN+8T`++L-2H$#oVFBwWsJZo6kMNS6TiYYAZy6(`B}rw|8y{ zN+-Q3oeajHF*QaK!HylnMV}BK%P7bWhPhxsC$GwBgHHM=pn6r7p44SkBaVd>!;(U( zgd0qhV1k-38jKM|BE~VW!fnDba*69{YM@E%(bF8S#(54F8?H4Kfl?DOhoBppaEyFa_%yT7}e?i#`6&Fzofb@$ipPu&N&y6J9E zT~+PLlT$zV{`OaN`wQ6p4cGoAZ}=I0zU$t@Tz@40J)_cewVYSkwD|<0mKvpb#5nh- zSxoKJEG>srIh$}`!7wqDbEdYo+jr&GxQiMUYg@+mghjRF^Vw}+7moX4#y%}o+!iG8bW1YAL>Af z?oGBN+1VCULyqeyNvKT-!9r>w1rMVEo-yxx2a1-D%9xti>M>Bv zA!!YZI;D<6v3j5kQ>97RzWFd|?oF-e&OH`mL;8Z0CX^?VV?!mELFb9o8p$F?F|;Y@ z!!oK^-J@iTD;Bt2j+o|HYPIDcu+~Zv8Te({fpRzwx!MwySW~Nb=mzURiSF-%=$-p3 z!Og%rw`pJy&6!p-kcN;^(-^8+J}hIa)|RHBf|$S$KO?3&qH1k8SS^i_p+|~`$>C^J gYtt4q)^HYfIC+>j_jr``DPIcy106{%ETlL90G!Hq)$ diff --git a/storage/logs/teh.log.2024-10-07.0.gz b/storage/logs/teh.log.2024-10-07.0.gz new file mode 100644 index 0000000000000000000000000000000000000000..7b1adb6a68a8c0d5af8ed4a2e2441736c33b326d GIT binary patch literal 1350 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 a? getChildren() { - List children = Collections.emptyList(); - if (path != null - && !path.isEmpty() - && path != "") { - try { - Path dirPath = Paths.get(path); - // Размещаем каждый файл в директории в качестве объекта FileMetadata - // и собераем их в список - children = Files.list(dirPath) - .map(p -> new FileMetadata(p.toString())) - .collect(Collectors.toList()); - } catch (IOException e) { - // System.out.println("Error reading directory: " + e.getMessage()); - // System.out.println("Path: " + path); - } - } - return children; - } - public static String ext(String filename){ - if (filename == null || filename.isEmpty()) { - return ""; - } - int lastDotIndex = filename.lastIndexOf('.'); - if (lastDotIndex == -1) { - return ""; - } - return filename.substring(lastDotIndex + 1); - } } diff --git a/storage/src/main/java/gsp/technologies/storage/models/xlsx/Xlsx.java b/storage/src/main/java/gsp/technologies/storage/models/xlsx/Xlsx.java index eb6d9b2..02eb28b 100644 --- a/storage/src/main/java/gsp/technologies/storage/models/xlsx/Xlsx.java +++ b/storage/src/main/java/gsp/technologies/storage/models/xlsx/Xlsx.java @@ -3,6 +3,7 @@ package gsp.technologies.storage.models.xlsx; import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; @@ -16,19 +17,25 @@ import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import gsp.technologies.storage.models.FileMetadata; +import gsp.technologies.storage.services.FileService; public class Xlsx { private static final Logger LOG = LoggerFactory.getLogger(Xlsx.class); private FileMetadata metadata; - public Xlsx(FileMetadata metadata) { + @Autowired + private FileService fs; + + public Xlsx(FileMetadata metadata, FileService fs) { this.metadata = metadata; + this.fs = fs; } public Xlsx(String path){ - this.metadata = new FileMetadata(path); + this.metadata = fs.metaFromPath(Paths.get(path)); } public XlsxPage page(int pageSize, int pageNumber) { @@ -109,10 +116,10 @@ public class Xlsx { return map; } - File file = new File(metadata.getPath()); + File file = metadata.getAbsolutePath().toFile(); LOG.info("размер файла: " + metadata.getSize()); LOG.info("Страница: " + pageNumber); - try (FileInputStream is = new FileInputStream(metadata.getPath())) { + try (FileInputStream is = new FileInputStream(file)) { XSSFWorkbook wb = new XSSFWorkbook(file); XSSFSheet sheet = wb.getSheetAt(0); @@ -145,7 +152,7 @@ public class Xlsx { */ public Integer totalLines() { int count = 0; - try (FileInputStream is = new FileInputStream(metadata.getPath())) { + try (FileInputStream is = new FileInputStream(metadata.getAbsolutePath().toFile())) { XSSFWorkbook wb = new XSSFWorkbook(is); XSSFSheet sheet = wb.getSheetAt(0); // count = sheet.getLastRowNum(); diff --git a/storage/src/main/java/gsp/technologies/storage/models/xlsx/XlsxCell.java b/storage/src/main/java/gsp/technologies/storage/models/xlsx/XlsxCell.java index cc0254a..4fb0b8e 100644 --- a/storage/src/main/java/gsp/technologies/storage/models/xlsx/XlsxCell.java +++ b/storage/src/main/java/gsp/technologies/storage/models/xlsx/XlsxCell.java @@ -5,6 +5,7 @@ import org.apache.poi.ss.usermodel.DateUtil; import gsp.technologies.storage.util.Stringer; import lombok.Data; +import lombok.NoArgsConstructor; @@ -13,6 +14,7 @@ import lombok.Data; * TODO: убрать не нужные поля */ @Data +@NoArgsConstructor public class XlsxCell { private String content; //содержимое ячейки private String type;// STRING, NUMERIC, BOOLEAN, FORMULA @@ -51,48 +53,6 @@ public class XlsxCell { this.type = type; } - // @Override - // public int hashCode() { - // final int prime = 31; - // int result = 1; - // result = prime * result + ((content == null) ? 0 : content.hashCode()); - // result = prime * result + ((type == null) ? 0 : type.hashCode()); - // return result; - // } - - // @Override - // public boolean equals(Object obj) { - // if (this == obj) - // return true; - // if (obj == null) - // return false; - // if (getClass() != obj.getClass()) - // return false; - // XlsxCell other = (XlsxCell) obj; - // if (content == null) { - // if (other.content != null) - // return false; - // } else if (!content.equals(other.content)) - // return false; - // if (type == null) { - // if (other.type != null) - // return false; - // } else if (!type.equals(other.type)) - // return false; - // return true; - // } - - // @Override - // public String toString() { - // return "XlsxCell [content=" + content + ", type=" + type + "]"; - // } - - /** - * - */ - public XlsxCell() { - } - /** * @param content * @param textColor diff --git a/storage/src/main/java/gsp/technologies/storage/services/FileService.java b/storage/src/main/java/gsp/technologies/storage/services/FileService.java index a2706a9..dec9f49 100644 --- a/storage/src/main/java/gsp/technologies/storage/services/FileService.java +++ b/storage/src/main/java/gsp/technologies/storage/services/FileService.java @@ -1,6 +1,7 @@ package gsp.technologies.storage.services; import java.nio.file.Path; +import java.time.LocalDateTime; import java.util.List; import org.springframework.core.io.Resource; @@ -25,4 +26,17 @@ public interface FileService { Resource loadAsResource(String filename); List store(MultipartFile[] files); FileMetadata store(MultipartFile file); + String filename(Path path); + String extansion(Path path); + Long size(Path path); + // Path path(String name); + Path absolute(Path relative); + LocalDateTime created(Path path); + LocalDateTime modified(Path path); + String owner(Path path); + String type(Path path); + String permissions(Path path); + List children(Path path); + FileMetadata parent(Path path); + FileMetadata metaFromPath(Path relative); } \ No newline at end of file diff --git a/storage/src/main/java/gsp/technologies/storage/services/FileServiceImpl.java b/storage/src/main/java/gsp/technologies/storage/services/FileServiceImpl.java index 85d2fb9..692c451 100644 --- a/storage/src/main/java/gsp/technologies/storage/services/FileServiceImpl.java +++ b/storage/src/main/java/gsp/technologies/storage/services/FileServiceImpl.java @@ -8,9 +8,14 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; +import java.nio.file.attribute.BasicFileAttributes; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.ArrayList; import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,12 +26,11 @@ import org.springframework.web.multipart.MultipartFile; import gsp.technologies.storage.config.StorageConfig; import gsp.technologies.storage.models.FileMetadata; -import gsp.technologies.storage.models.xlsx.XlsxPage; import jakarta.annotation.PostConstruct; @Service public class FileServiceImpl implements FileService { - private static final Logger LOG = LoggerFactory.getLogger(FileServiceImpl.class); + private static final Logger log = LoggerFactory.getLogger(FileServiceImpl.class); private final Path storageLocation; public FileServiceImpl(StorageConfig config) { @@ -43,12 +47,12 @@ public class FileServiceImpl implements FileService { public void init() { try { // Создание директории для хранения файлов, если она не существует - LOG.info("Создание директории root(), для хранения файлов: {}", storageLocation); + log.info("Создание директории root(), для хранения файлов: {}", storageLocation); Files.createDirectories(storageLocation); } catch (IOException e) { // Печатает в консоль сообщение об ошибке при создании директории // System.out.println("Ошибка создания директории для хранения файлов: " + e.getMessage()); - LOG.info("Директория {}, уже существует: {}", storageLocation, e.getMessage()); + log.info("Директория {}, уже существует: {}", storageLocation, e.getMessage()); } } @@ -60,7 +64,7 @@ public class FileServiceImpl implements FileService { */ @Override public List listFiles(Path path) { - return new FileMetadata(path.toString()).getChildren(); + return children(path); } /** @@ -71,8 +75,9 @@ public class FileServiceImpl implements FileService { */ @Override public List listFiles(String path) { - return new FileMetadata(path).getChildren(); + return children(Paths.get(path)); } + /** * Загрузка файла в указанный путь в директории хранения * Если файл уже существует, возвращает null @@ -187,6 +192,7 @@ public class FileServiceImpl implements FileService { System.out.println("Ошибка создания директории: " + e.getMessage()); } } + /** * Удаляет директорию с указанным именем. * Если директория не существует, ничего не делает. @@ -210,11 +216,10 @@ public class FileServiceImpl implements FileService { System.out.println("Ошибка удаления директории: " + e.getMessage()); } } - @Override - public Path root() { - return this.storageLocation; - } - + + /** + * + */ @Override public Resource loadAsResource(String filename) { try { @@ -226,7 +231,7 @@ public class FileServiceImpl implements FileService { else { // throw new Exception( // "Could not read file: " + filename); - System.err.println("Could not read file: " + filename); + System.err.println("Ошибка чтения файла: " + filename); } } catch (MalformedURLException e) { @@ -247,7 +252,7 @@ public class FileServiceImpl implements FileService { catch (IOException e) { System.out.println("Не удалось сохранить файл " + file.getOriginalFilename()); } - return new FileMetadata(file.getOriginalFilename()); + return metaFromPath(Path.of(file.getOriginalFilename())); } @Override @@ -258,4 +263,152 @@ public class FileServiceImpl implements FileService { } return metadata; } + + /** + * Методы извленения метаданных из файловой системы + */ + + /** + * Извлечение имени файла из пути + * @param path + * @return + */ + @Override + public String filename(Path path) { + return path.getFileName().toString(); + } + + @Override + public String extansion(Path path) { + String pathString = path.toString(); + if (path == null || pathString.isEmpty()) { + return ""; + } + int lastDotIndex = pathString.lastIndexOf('.'); + if (lastDotIndex == -1) { + return ""; + } + return pathString.substring(lastDotIndex + 1); + } + + /** + * Получаем корневую директорию хранения файлов + */ + @Override + public Path root() { + return this.storageLocation; + } + + public Path absolute(Path relative) { + return root().resolve(relative); + } + + /** + * Получаем размер файла в байтах + * @param path + * @return + */ + @Override + public Long size(Path path) { + File file = path.toFile(); + return file.length(); + } + + /** + * Получаем дату создания файла + * @param path + * @return LocalDateTime время создания, если получилось извлечь из метаданных, + * иначе LocalDateTime.now() + */ + public LocalDateTime created(Path path) { + BasicFileAttributes attributes; + + try { + attributes = Files.readAttributes(path, BasicFileAttributes.class); + return Instant.ofEpochMilli(attributes.creationTime().toMillis()).atZone(ZoneId.systemDefault()).toLocalDateTime(); + } catch (IOException e) { + log.error("Не удалось получить метаданные для файла {}", filename(path)); + return LocalDateTime.now(); + } + } + + /** + * Получаем дату изменения файла + * @param path + * @return LocalDateTime время изменения, если получилось извлечь из метаданных, + * иначе LocalDateTime.now() + */ + public LocalDateTime modified(Path path){ + BasicFileAttributes attributes; + try { + attributes = Files.readAttributes(path, BasicFileAttributes.class); + return Instant.ofEpochMilli(attributes.lastModifiedTime().toMillis()).atZone(ZoneId.systemDefault()).toLocalDateTime(); + } catch (IOException e) { + log.error("Не удалось получить метаданные для файла {}", filename(path)); + return LocalDateTime.now(); + } + } + public String owner(Path path){ + try { + return Files.getOwner(path).getName(); + } catch (IOException e) { + log.error("Не удалось получить метаданные для файла {}", filename(path)); + return ""; + } + } + + public String type(Path path){ + if (Files.isDirectory(path)) return "directory"; + if (Files.isRegularFile(path)) return "file"; + return null; + } + + + public String permissions(Path path){ + try { + return Files.getPosixFilePermissions(path).toString(); + } catch (IOException e) { + log.error("Не удалось получить метаданные для файла {}", filename(path)); + return ""; + } + } + + /** + * Возвращает список дочерних файлов и директорий в текущей директории. + * Если текущая директория не является директорией, возвращает пустой список. + */ + public List children(Path path){ + List list = List.of(); + try { + list = Files.list(path) + .map(p -> metaFromPath(p.getFileName())) + .collect(Collectors.toList()); + } catch (IOException e) { + log.error("Не удалось получить метаданные для файла {}", filename(path)); + } + return list; + } + + public FileMetadata parent(Path path){ + return metaFromPath(path.getParent()); + } + + public FileMetadata metaFromPath(Path relative) { + log.info("Создаем объект FileMetadata для пути {}", relative.toString()); + FileMetadata meta = new FileMetadata(); + Path absolute = this.absolute(relative); + + meta.setName(filename(relative)); + meta.setExtension(extansion(relative)); + meta.setRootPath(root()); + meta.setRelativePath(relative); + meta.setAbsolutePath(absolute); + meta.setSize(size(absolute)); + meta.setCreatedDate(created(absolute)); + meta.setLastModifiedDate(modified(absolute)); + meta.setOwner(owner(absolute)); + meta.setType(type(absolute)); + meta.setPermissions(permissions(absolute)); + return meta; + } } \ No newline at end of file diff --git a/storage/src/main/resources/templates/mainframe.html b/storage/src/main/resources/templates/mainframe.html index 3210ff8..25da438 100644 --- a/storage/src/main/resources/templates/mainframe.html +++ b/storage/src/main/resources/templates/mainframe.html @@ -38,7 +38,7 @@ - + @@ -55,11 +55,14 @@ \ No newline at end of file diff --git a/storage/src/main/resources/templates/view-xlsx.html b/storage/src/main/resources/templates/view-xlsx.html index 1bae415..8786776 100644 --- a/storage/src/main/resources/templates/view-xlsx.html +++ b/storage/src/main/resources/templates/view-xlsx.html @@ -28,13 +28,17 @@ name: + + extension: + + path: - + root: - + size: