php - Sådan linker du en fil til en database?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at gennemføre et script, der læser indholdet (filer og mapper) i en bestemt mappe og skriver den i en database. Mit mål er at oprette en software, der giver mig mulighed for at organisere de filer og mapper, der vedrører beskrivelse og tags til dem, uden at påvirke de tilsvarende fysiske filer i disken.
Men for øjeblikket står jeg over for et logisk problem: Hvordan laver jeg en direkte forbindelse mellem den fysiske fil og databasegisteret? Jeg vil have det, selvom den fysiske fil af en eller anden grund redigeres eller flyttes til en anden mappe inde i root-mappen, kan softwaren stadig relatere den fil med sit oprindelige register i databasen.


Min første ide var at bruge en checksum hash til at identificere hver fil, men jeg gætter på, at hvis filen redigeres, så gør hash det ikke? Udover det tror jeg også, at en mappe ikke kan kontrolleres på den måde.


En anden løsning, der kom op til mig, var at anvende en unik nøgle i begyndelsen af ​​hver fil og mappenavn i mappen. Det kan virke, men det forekommer mig som en improviseret løsning, og derfor 'jeg mumper, at der kan være en anden måde at gøre det, som jeg ikke har overvejet endnu.
Har nogen råd til det?

Bedste reference


Under Linux kan du spore filer ved inode, som ikke ændres, hvis filen bliver flyttet eller omdøbt. Du kan endda få besked, når en fil ændres. [2] [3]


har du overvejet at gemme filen i databasen?

Andre referencer 1


Du kan 't.


Det ser ud til, at der ikke er nogen måde at identificere filen: hverken ved indhold eller ved stinavn.


En løsning kan være: Brug stien som id (og brug dem som reference i DB) og brug ikke systemværktøjer (som mv) til at flytte filer, men dit eget script, som opdaterer filsystemet og databasen.