package main import ( "fmt" "inou/lib" "os" "path/filepath" ) var mapping = []struct { uuid string category string filename string }{ {"490e392e-fc3c-4cc0-97fa-fd931c31f385", "documents", "Консультация невролога.pdf"}, {"adbb0873-34d8-401f-ad57-5060702eaf46", "documents", "Елизарова Анастасия, конс.Зельдина.docx"}, {"089d6f7e-fc72-4cb6-b8ea-f7d8915c3623", "labs", "Елизарова.pdf"}, {"344c27bc-c817-42a3-bb7a-179be8f25756", "labs", "21000299-01-r.pdf"}, {"a8e498c2-d2ce-4fef-bf95-bebee003b906", "labs", "21000299-02-r.pdf"}, {"6ec2f836-c3be-4d86-b2d9-8e18c017739b", "labs", "b5e23b01-cbf4-41f1-a1a8-f40029bd9988.pdf"}, {"6c27bc1f-924c-45ba-a68b-f9106978497e", "labs", "b8b4409d-eced-4c3a-8bce-7b0699f20282.pdf"}, {"8b1d9eb0-574a-4e2c-9c78-f326a3c772f0", "labs", "f8c8562b-491b-4daa-be62-bc9b833d9925 2.pdf"}, {"b971ca00-89a1-4b75-ad89-173dcf7bb031", "labs", "8bf6b044-3aac-447b-b4af-9157da366108.pdf"}, {"a5ae147d-5448-40e4-af9f-145dadf88d24", "labs", "0ba90c52-3d20-4827-9c83-4ce5680f3c7b 2.pdf"}, {"22d9bacf-149e-4e86-8f6c-e89f3005a18d", "labs", "99a99e63-15df-4656-bbe9-3b604e4c7eef 2.pdf"}, {"1d378e00-fe81-4f1f-8d34-ed7325e3b059", "labs", "75608b8f-3db5-4aa4-82cf-881d714031d8 3.pdf"}, {"fe198b0d-0dca-4444-ac01-5cdf9a46bc5e", "labs", "53705841-620f-448f-b25c-ac64677595c6 4.pdf"}, {"5e4117df-8cbd-4467-a5b8-e5edb203029f", "labs", "431df34c-9659-4eaf-8f39-cb2f8b71b44a 4.pdf"}, {"52379231-9768-496c-8d1a-dfc4f3ed1787", "labs", "3580f5b6-043f-4ed6-aa83-fa7e65848bba 4.pdf"}, {"b8474ad3-c57a-4216-95ee-64b040fbf1b8", "labs", "2c32fbc4-b443-4288-8e4c-b9d1ec9ec1b1 4.pdf"}, {"2c64995b-cb16-43d8-bd7b-f8e86f644dc4", "labs", "0f5bd510-507e-46e5-a7ac-375f43dbc3b7.pdf"}, {"0a80459b-0e1e-426a-b5c7-24c6d6efa381", "labs", "4a6db55f-bd1c-4a8e-bebc-2c280c07fd41 4.pdf"}, {"5f2fea93-c396-468f-ba43-3f3c0da693fd", "labs", "216d3b71-e1f8-4140-8726-70c14e8d64ed.pdf"}, {"83bbc6eb-2796-405d-a746-f0da7ab63ebe", "labs", "4d28e298-4d18-45f3-926b-30a455ba9663 5.pdf"}, {"f79b5ca0-5737-4090-a5b1-65fae4f0815d", "labs", "d0de9e8b-c673-424e-9753-822b242e939c 4.pdf"}, {"a1634c8f-af38-4bd8-9b4c-290edeabe84c", "labs", "b440562f-7e9a-47f9-b581-988fe809eb0d.pdf"}, {"48620f9e-afe2-48f0-ab40-cd9ae72f5faf", "labs", "38af38ff-5d48-47f5-9a02-4967a6b7ee3b 2.pdf"}, {"8c992e77-a2ce-47d8-b552-990f99fe2f31", "labs", "e34f6aae-ae94-4591-92ed-bf6788754dbb 2.pdf"}, {"ef941365-d42b-4167-a07c-99f048be9386", "labs", "efba7f62-4d87-4d7a-967f-685e1c01ae58 2.pdf"}, {"656fa01b-efa7-4635-aff0-1311fd30a55e", "labs", "fe9ad5fb-b58d-4da0-b01a-f7b5297286cb 3.pdf"}, {"db8fabeb-391d-419d-bbb1-8147844522fb", "labs", "f78b96bc-866d-426e-955c-20616cf7c74d 2.pdf"}, {"47a0687b-7e8a-44c4-bec2-201cda8074f9", "labs", "ac2e5795-eb9b-4578-81eb-e1a6028036e8 4.pdf"}, {"d5ed9a71-607e-46f3-9cdd-4b1c9095a727", "labs", "937e6667-4180-4cb5-a14d-297a30ba2664.pdf"}, {"9b0549e6-9a89-42d5-ae62-70ab8e7d661f", "labs", "0ce67c35-0723-4d82-b2d5-0cd073afe4c6.pdf"}, {"a30ede43-66e4-4a66-9dba-f42e83010a48", "labs", "fbc7bbff-0436-4ed1-8af8-c072f7849c67 2.pdf"}, {"f5f63ed4-4958-486a-bbc4-d3369bed860e", "labs", "175bfe5e-a770-495b-8b65-a8c5a83b43bd 4.pdf"}, {"c6646a1c-7559-424d-8c2f-c105df89a83d", "labs", "401e00ca-c198-4e84-979c-088e5ff932b6 3.pdf"}, {"b75fc2df-0ebc-4d50-aa06-94554dc39e73", "documents", "L9470105.pdf"}, {"a6873d40-3c24-45ff-a3cb-834cfa56b2e7", "labs", "a8ea33ce-1068-4936-b3e4-e4bda6d9858b 3.pdf"}, {"65626c4e-6b25-4da5-83b4-813975555212", "documents", "L11138018 2.pdf"}, {"31eb350c-c31e-464b-b46b-b6b4e853d98d", "labs", "0000300766_00176_136160049_e_a_l___3182626_199 2.pdf"}, {"2415c6da-32a7-4455-a15e-8f3628a17742", "documents", "№13102500 ELIZAROVA A.D. - Протокол МРТ - 02.12.25.pdf"}, {"9552415f-d7d5-4d92-bd3c-e7bdcddcea93", "documents", "№12610214 _ ELIZAROVA A.D. - Протокол МРТ - 22.04.25.pdf"}, {"a7e8c7ba-c8e0-4e70-8a52-0063c5f929a3", "labs", "Елизарова А Д - 8010001827 (БИОХИМИЧЕСКИЕ ИССЛЕДОВАНИЯ).pdf"}, {"487a2528-a2af-4fd7-a5f2-5c5099e4cdf4", "documents", "ELIZAROVA A.D. - Протокол УЗИ - 26.05.21.pdf"}, {"991ec05b-1cdd-4d9e-98b7-a50eb8750cd4", "labs", "Елизарова А Д - 8010001825 (БИОХИМИЧЕСКИЕ ИССЛЕДОВАНИЯ).pdf"}, {"8c54ebbc-91c1-4e1b-aab2-9cd759f6d39a", "documents", "№9481636 _ ELIZAROVA A.D. - Протокол УЗИ (Прочее) - 09.06.21 2.pdf"}, {"6f2b1825-531d-445d-a5d1-28f86bc28e80", "labs", "Елизарова А Д - 8010001821 (Клиника кровь).pdf"}, {"fa0f8533-bdb7-4a17-842b-5976086be1aa", "documents", "№9270099 _ ELIZAROVA A.D. - Протокол УЗИ (Прочее) - 24.03.21.pdf"}, {"b69cc189-8a62-43d7-9d3f-b22b276e24b2", "documents", "ELIZAROVA A.D. - Протокол УЗИ - 17.05.21.pdf"}, {"07d855dc-872b-44d7-ba3c-4dcc51cd886d", "documents", "№9331563 _ ELIZAROVA A.D. - Протокол УЗИ (Прочее) - 14.04.21.pdf"}, {"26944ffe-3f81-4944-963d-62c25c422123", "documents", "ELIZAROVA A.D. - Протокол УЗИ (Прочее) - 29.06.21 2.pdf"}, {"f199af03-7d71-46f4-9d02-0b56977b23f1", "documents", "ELIZAROVA A.D. - Протокол УЗИ 18.08.21 2.pdf"}, {"3bae7c74-0473-4dc2-bef8-924d1ca7ba40", "labs", "Елизарова А Д - 8010001956 (Клиника кровь).pdf"}, {"a572229d-bfbd-4a22-822f-02d57294d6fe", "labs", "Елизарова А Д - 8010001821 (Профили(общая)).pdf"}, {"1ee888a0-3a78-4a53-9f47-2cc27ff60cf4", "documents", "Нейросонография_06.08.2020.pdf"}, {"17db6592-d2b9-41d6-bda0-56480d9752bc", "labs", "ЕЛИЗАРОВА А Д - 7017542950 (Клиника кровь) 2.pdf"}, } const uploadDir = "/tank/inou/uploads/63d5df76904b1ec5" const outputDir = "/tmp/anastasiia-restored" func main() { if err := lib.CryptoInit("/tank/inou/master.key"); err != nil { fmt.Fprintf(os.Stderr, "CryptoInit failed: %v\n", err) os.Exit(1) } // Create output directories for _, cat := range []string{"labs", "documents"} { if err := os.MkdirAll(filepath.Join(outputDir, cat), 0755); err != nil { fmt.Fprintf(os.Stderr, "mkdir failed: %v\n", err) os.Exit(1) } } success := 0 failed := 0 for _, m := range mapping { srcPath := filepath.Join(uploadDir, m.uuid) dstPath := filepath.Join(outputDir, m.category, m.filename) data, err := lib.DecryptFile(srcPath) if err != nil { fmt.Fprintf(os.Stderr, "FAILED: %s -> %s: %v\n", m.uuid, m.filename, err) failed++ continue } if err := os.WriteFile(dstPath, data, 0644); err != nil { fmt.Fprintf(os.Stderr, "FAILED write: %s: %v\n", dstPath, err) failed++ continue } fmt.Printf("OK: %s -> %s/%s\n", m.uuid, m.category, m.filename) success++ } fmt.Printf("\nDone: %d success, %d failed\n", success, failed) }