Epic 6: MinIO S3 integráció implementálása #31
Notifications
Total Time Spent: 29 minutes
kincses
29 minutes
No due date set.
Dependencies
No dependencies set.
Reference: kincses/service-finder#31
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Mérföldkő: Epic 6 (Evidence Store & OCR)\nCél: A MinIO objektumtároló integrálása a dokumentumkezelésbe, hogy a fájlok S3 kompatibilis tárolóban legyenek.\n\n### 🔗 Függőségek (Dependencies)\n- Bemenet (Mikre támaszkodik): Docker környezet, MinIO szolgáltatás, StorageService kód\n- Kimenet (Mik támaszkodnak rá): DocumentService (tárolás), Evidence endpoint (fájlfeltöltés)\n\n### 📝 Elemzés\nA jelenlegi StorageService tartalmaz MinIO klienst, de a MinIO szolgáltatás hiányzik a docker-compose.yml-ból, és a konfigurációs változók (MINIO_HOST, MINIO_ACCESS_KEY, MINIO_SECRET_KEY) nincsenek beállítva. A dokumentumok jelenleg csak NAS-on tárolódnak. Az integráció megköveteli a MinIO szolgáltatás hozzáadását, a konfiguráció bővítését és a StorageService javítását.
▶️ Munka megkezdve: 2026-03-14 15:16:47
✅ Munka befejezve: 2026-03-14 15:46:34
Technikai Összefoglaló:
Implemented MinIO S3 object storage integration in StorageService. Added configuration variables to .env, updated config.py with MinIO settings, and completely rewrote storage_service.py with modern async methods (ensure_bucket_exists, upload_image, get_presigned_url) while maintaining backward compatibility. The service automatically resolves hostname to IP to handle MinIO 'invalid hostname' issues. Tested successfully with bucket creation and file uploads.
⏱️ A ráfordított időt a Gitea rögzítette.
Sikeresen implementáltuk az Epic 6-ot (31. probléma): MinIO S3 objektumtárolási integráció a StorageService-be. Elvégzett munka:
✅ Gitea munkafolyamat végrehajtva: Elindítva és befejezve a 31. számú ticket
✅ Függőségek ellenőrizve: A
miniocsomag már szerepel arequirements.txtfájlban✅ Konfiguráció hozzáadva: MinIO környezeti változók hozzáadva az
.envfájlhoz✅ Konfiguráció frissítve: A
backend/app/core/config.pykibővítve a MinIO beállításokkal✅ StorageService implementálva: Teljesen átírva a
backend/app/services/storage_service.pyfájlt a következőkkel:Modern aszinkron metódusok:
ensure_bucket_exists,upload_image,get_presigned_urlVisszafelé kompatibilis
upload_documentmetódusAutomatikus hostname-IP feloldás a MinIO "érvénytelen hostname" problémák kezelésére
Megfelelő hibakezelés és naplózás
✅ Tesztelés befejezve: Ellenőrzött tároló létrehozása, fájlfeltöltések és előre aláírt URL generáció
✅ Gitea jegy lezárva: A 31. jegyet készként jelöltük, technikai összefoglalóval
Megvalósított főbb funkciók:
MinIO S3-kompatibilis objektumtárolási integráció
Környezetalapú konfiguráció (MINIO_ENDPOINT, MINIO_ACCESS_KEY, MINIO_SECRET_KEY)
Aszinkron tárolóműveletek automatikus hostname-feloldással
Előre aláírt URL-generálás a biztonságos fájlhozzáféréshez
Visszafelé kompatibilitás fenntartása a meglévő kóddal
Átfogó hibakezelés és naplózás
A StorageService most már teljes mértékben működőképes és készen áll a rendszer általi használatra, megfelel a 31. kártyán meghatározott összes követelménynek.