[Bitrepository-devel] Understøttelse for directories i bitmagasinet

Kim Teglgaard Christensen ktc at statsbiblioteket.dk
Thu Apr 28 12:43:16 CEST 2016


Hej

Her fra SB er der et ønske om at sikre understøttelse for directories i bitmagasinet. På mest lavpraktiske vis betyder det at:
1) sikre at referencekoden kan håndtere fileIDs hvor '/' og/eller '\' indgår.
2) tillade at pillar implementationer kan vælge at fortolke '/' og/eller '\' som directory seperatorer.

Ønsket udspringer af at vi har et antal samlinger som pt. ligger uden for bitbevaring og pænt ordnet i hierarkier. Der er fra vores kuratorer et ønske om at få samlingerne under bitbevaring, og samtidigt et ønske om at kunne tilgå filerne read-only via et netværksshare.

I forhold til reference-koden (punkt 1), så ligger der primært to opgaver:
a) Sikre at klienterne håndtere fileIDs hvor i '/' og/eller '\' indgår. Det forventes ikke at der vil være de store problemer med det. Nok kun omkring parsing af argumenter til kommandolinje klienterne, ved FileExchange og måske mindre dele af håndteringen i Get/Put/Replace operationer.
b) Reference pillaren, da den skal gemme filer i filsystemet. Der skal tages stilling til hvordan den skal håndtere det. Skal den mappe fileIDs til noget som pænt folder ned i et directory, afvise fileIDs med de omtalte tegn i, eller lave den nødvendige folder struktur? Og skal håndteringen gøres til noget konfigurerbart?
Hvad checksum pillaren angår, så gemmer den ikke noget i filsystemet, hvorfor det ikke må forventes at give nogle udfordringer.

Når det kommer til pillar implementationerne (punkt 2) så drejer det sig om at en pillar, afhængig af implementationen, kan blive tvunget til at afvise et Put af et en fil med et fileID som har uforenlige sammenfald med et eksisterende fileID.

Eksempel 1:
Pillaren har en fil fileID: "metallica/load/track1.wav"
Der forsøges et put af fil med fileID: "metallica/load"
- Hvis benet opfatter '/' i filID'er som en directory seperator og lagre filerne i et heiraki, vil den være nødt til at afvise puttet, da det "metallica/load" udgør et directory.
- Hvis benet ikke opfatter '/' som en directory seperator, vil begge filer kunne co-eksistere.

Eksempel 2:
Pillaren har en fil med fileID: "metallica/load"
Der forsøges et put af en fil med fileID: "metallica/load/track1.wav"
- Hvis benet opfatter '/' i fileID'er som en directory seperator vil benet være tvunget til at afvise puttet, da "metallica/load" eksistere og ikke er et directory.
- Hvis benet ikke opfatter '/' som et directory seperator, vil begge filer kunne co-eksistere.

Eksempel 3:
Pillaren har en fil med fileID: "metallica/load/track1.wav"
Der forsøges et put af en fil med fileID: "metallica/load/track2.wav"
- Uanset om '/' fortolkes som directory seperator eller ej, vil begge filer kunne co-eksistere.


Er der nogle indvendinger i communitiet over at vi fra SB side kigger på en sådan understøttelse?
Udover mere funktionalitet i referencekoden, vil det ikke generelt stille nye krav pillar implementationer, det vil altså være op til den enkelte implementør om man ønsker den funktionalitet.

Mvh
Kim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ml.sbforge.org/pipermail/bitrepository-devel/attachments/20160428/490b60fc/attachment.html>


More information about the Bitrepository-devel mailing list