For moro skyld og for å se hvor godt kunstig idioti kan legge til helt ny funksjonalitet i en eksisterende kodebase, så ba jeg vrøvleroboten min om å legge inn valgfri S3-støtte i Nikita, mens den tok hensyn til at endel filbehandling i bakgrunnen trenger lokale filer å jobbe med (OCR, omforming til PDF). Etter noen timers aktivitet kom den opp med en skisse til endring som implementerer dette. Jeg har bedt den lage to S3-klientvarianter, en som bruker AWS og en som bruker JetS3T. Har ikke rukket hverken finlese gjennom kodeforslaget eller teste det mot en ekte S3-tjeneste, men tenkte ideen og skissen kunne være interessant for flere og vil derfor delen status her.
Endringsforslaget <URL: https://gitlab.com/OsloMet-ABI/nikita-noark5-core/-/merge_requests/491 > inneholder to innsjekk, først en som omstrukturerer lagringskoden til å gå gjennom et nytt abtraksjonslag der en kan velge lokal fillager eller S3, og deretter en som bytter ut AWS med JetS3T.
Hva tenker dere om tilnærmingen og valg av S3-klientbibliotek? Jeg vet ikke hvilke av disse som har størst sjanse for å fungere flott i fremtiden, men observerer at JetS3T har Debian-pakke, men AWS-varianten ikke har det, hvilket får meg til å helle mot JetS3T da det unngår å gjøre jobben med å få Nikita inn i Debian enda tyngre.
Det nye abstraksjonslaget bør gjøre det mulig å legge inn flere lagringsprotokoller i fremtiden. Kanskje bør det gjøres utvidbart uten kodeendringer (aka dynamisk lasting), slik at tredjeparter kan støtte for eksempel Ceph, NFS, CIFS eller DPC en eller annen gang i fremtiden?