Databáze souborů na disku

Databáze souborů na disku
« kdy: 19. 07. 2023, 09:45:46 »
Ahoj,

mam na disku spoustu souboru (filmy, obrazky, videa, ebooky, pdfka, mp3). Obcas zkratka divoce stahuju nebo narazim na nejaky repozitar/uloziste, ktery proste cely stahnu s tim, ze ho preberu potom... Nahromadila se mi takhle spousta duplikatu a potreboval bych to nejak automaticky prebrat.

Vim, ze existuji utilitky, ktere umi rozpoznat duplikaty a smazat je a uz jsem je i pouzival. Potiz je ale v tom, ze:

1. porovnava to soubory jen binarne, neumi to napriklad rozpoznat podobne nazvy jinych souboru (napriklad dve mp3, stejna pisnicka, nazev je klidne uplne stejny, ale soubory se o bajt lisi, ptz jednou je pisnicka o vterinu oriznuta).
2. je to one-off pouziti: tj. kdyz pridavam obsah, musel bych ho nakopirovat do slozek a pak zase pustit znovu scan celeho filesystemu.

Moje predstava, jak by neco takoveho mohlo fungovat je zhruba nasledujici:

1. bezelo by to jako daemon a v pravidelnych intervalech (pro moje pouziti by naprosto stacilo jednou denne) by oscannoval filesystem/dany adresar a zdetekoval zmeny
2. posledni stav by si drzel nekde v nejakem, napriklad, JSONu a oproti nemu vzdy kontroloval aktualni stav
3. jakmile by oscannoval FS a ziskal tenhle JSON (kde by byla napriklad cesta k souboru, hash, nazev a treba nejaka metadata jako kvalita apod.), mohl by veskerou chytristiku delat uz jen nad tim JSONem
4. kdyz by se soubor do adresare pridaval, stacilo by ho porovnat s JSONem (nebo rucne spustit scan)
5. pokud vim, linuxovy (a mozna i windows) kernel poskytuji nejake filesystem watche/notifikace

Existuje neco takoveho hotoveho, pouzitelneho nebo si to musim nakodit sam? :) Programovat umim, myslim, vcelku obstojne...
« Poslední změna: 19. 07. 2023, 11:26:11 od Petr Krčmář »


RDa

  • *****
  • 2 522
    • Zobrazit profil
    • E-mail
Re:Databáze souborů na disku
« Odpověď #1 kdy: 19. 07. 2023, 12:42:03 »
To ukladejte podle "druhoveho cleneni" (treba mam mirrors/github/USER/REPO, primo se skriptem kteremu dam repo neb usera a postahuje to). Pak se vam nebudou tvorit duplicity.

Pro pouziti neceho ve vlastnim remixu pak delejte symlinky, na ten cizi/staticky obsah.

Kdyz jste neporadnej, tak vam zadna utilita nepomuze. Ale muzete poridit dalsi disk do pole.. coz je casto nejlevnejsi a nejrychlejsi reseni pro syslice digitalniho :D

Re:Databáze souborů na disku
« Odpověď #2 kdy: 19. 07. 2023, 15:19:45 »
Diky sice za odpoved, ale tak uplne to neodpovida na to, na co jsem se ptal...

Obsah mam vcelku solidne utrideny (filmy, hudbu, videa podle zanru/druhu/interpreta), fotky podle data a nazvu akce atd. Nekdy ale nestiham tridit nebo zatridim spatne (film je treba drama a crime zaroven, takze mam neumyslne jeden stejny film v adresari drama, druhy v crime).

Na stahovani nepouzivam temer nic jineho nez jDownloader, stahuje mi to primo na server, umi frontit, premium ucty atd. + torrent klient, pripadne custom skripty v extremnich pripadech... To co pisete ohledne skriptu bud nevim, jak myslite nebo mi to prijde jako snad jeste horsi pristup nez mit jednu general utilitu.

Uprimne, symlinky se mi taky nelibi, prijde mi, ze to akorat zvysuje komplexitu udrzovani takove databaze medii.

Jeste co se tyce sysleni. Ano, uznavam, to jsem presne ja :D Ale duvod je ten, ze jiz nekolikrat se mi stalo, ze muj oblibeny film, video, pisnicka z internetu proste zmizla (to se casto deje na youtube, kde je casto uplne unikatni obsah).

Re:Databáze souborů na disku
« Odpověď #3 kdy: 19. 07. 2023, 18:56:13 »
Ono, ina cesta ako si to poctivo katalogizovat pomocou atributov ako su: meno intrepreta (ov), nazov pesnicky, zaner (zanre), a pod asi ani nepojde.

Preco to asi inak nepojde? Priklad:
Dajme tomu mam pesnicku, jej dlzka je 243sekund, bitrate je 320kbps, jej nazov je XXX, jej inteprety su Interpret1 a Interpret2.
Dajme tomu mam tu istu pesnicku, jej dlzka je znovu 243sekund, jej nazov je XXX, jej interpreti su ti isty, ale teraz je z nejakeho dovodu vyplneny iba Interpret1 a jej bitrate je 256kbps.

Ako to ma ten softver rozoznat? Robit nejaku sprektralnu analyzu? Dajme tomu slo by to pri mensom pocte pesniciek, pri velkom mozu byt aj male rozdiely medzi inak roznymi pesnickami tak male ze ich soft vyhodnoti nespravne ako tu istu pesnicku (pretoze mu musite dat nejake rozsahy v ktorych sa moze hybat aby pokryl napr hore spomenutu situaciu s rozdielnym bitratom) a jednu z nich zmaze.

Dalsie problemy su rozne dlzky tej istej pesnicky, alebo rozne zdroje, jedno moze byt zaznam z koncertu, druhe studiova nahravka, soft by ich v tomto pripade zrejme nerozoznal ako tu istu pesnicku (pretoze ten dav v pozadi jej urcite vyrazne zmeni spektrum).

Atd, atd, tich problemov ktore mozu nastat a treba ich nejak riesit je podla mna az moc aby sa to vyplatilo kodit si to sam, ci je na to nejaky vymakany soft a ci je volne dostupny, resp za rozumnu cenu neviem, ale dost o tom pochybujem, lebo to by muselo byt fakt prespekulovane.
« Poslední změna: 19. 07. 2023, 18:58:57 od kanoe22 »

Re:Databáze souborů na disku
« Odpověď #4 kdy: 19. 07. 2023, 19:34:50 »
Jezkovy voci :) Spektralni analyza...

Podle me uplne staci funkcionalita takova, ze to na zacatku oscanuje filesystem a vytvori "databazi". Nekam do dalsiho souboru to vyplivne duplicity a podezreni na duplicity a bude mit volbu na to, co smazat hned a co interaktivne (typicky asi stejny hash je jasna duplicita, kdezto podobne nazvy je podezreni) - to by bylo konfigurovatelne.

Kdyz se bude cokoliv pridavat, ohlasi to, jestli existuje 1:1 duplicita nebo podobnost a hotovo.

Samozrejme, ze to nevyresi vsechno - ale zase cilem neni pristat na Marsu...


Re:Databáze souborů na disku
« Odpověď #5 kdy: 19. 07. 2023, 20:43:13 »
no to ale byla odpovidajici komentar na tvoji formulaci
nejsem si jist, jestli duplicity jsou to, co te skutecne pali.

neni to spis o metadatech?
pro mne pro filmy a serialy je dobryou ukazkou "Media Center Master


Jezkovy voci :) Spektralni analyza...

Podle me uplne staci funkcionalita takova, ze to na zacatku oscanuje filesystem a vytvori "databazi". Nekam do dalsiho souboru to vyplivne duplicity a podezreni na duplicity a bude mit volbu na to, co smazat hned a co interaktivne (typicky asi stejny hash je jasna duplicita, kdezto podobne nazvy je podezreni) - to by bylo konfigurovatelne.

Kdyz se bude cokoliv pridavat, ohlasi to, jestli existuje 1:1 duplicita nebo podobnost a hotovo.

Samozrejme, ze to nevyresi vsechno - ale zase cilem neni pristat na Marsu...

Re:Databáze souborů na disku
« Odpověď #6 kdy: 20. 07. 2023, 09:09:57 »
Jestli jste vyvojar mohl byste sam neco zacit tvorit. Vhodna souborova DB je SQLite, ma podporu pro webovy vyvoj (napr. v PHP), nebo treba i v Qt pro pripad ze byste se rozhodl psat aplikaci.

Re:Databáze souborů na disku
« Odpověď #7 kdy: 20. 07. 2023, 13:02:15 »
Hledáte rovnák na vohejbák.
Ideální řešení je třídit to rovnou nebo s minimálním zpožděním. Když to nejde samo, tak s prostě nějak přinutit - např mít málo místa na disku kam stahuju. Pak holt NEJDE stáhnout nic dalšího, dokud do archivu nepřesunu to, co už jsem nasyslil. Nebo skript, který po týdnu automaticky smaže /download. Nestihnu to? Tak to asi nebylo důležité

RDa

  • *****
  • 2 522
    • Zobrazit profil
    • E-mail
Re:Databáze souborů na disku
« Odpověď #8 kdy: 20. 07. 2023, 13:25:47 »
Nebo skript, který po týdnu automaticky smaže /download. Nestihnu to? Tak to asi nebylo důležité

Na OSX jsou v tech metadatech k souborum ulozeny veci jako puvodni-url, takze kdyby skript mazal ~/Downloads/ tak by porad davalo smysl odzalohovat adresy odkud ty data pochazi.

A vyssi divci bude FS pres fuse, ktery by ty url transparentne zas natahal zpet!

Re:Databáze souborů na disku
« Odpověď #9 kdy: 20. 07. 2023, 13:40:35 »
O tohle se v GNOME stará tracker.

https://wiki.gnome.org/Projects/Tracker

Trackuje definované složky a indexuje soubory.

tracker3 index
Path                                                                                                                                                                                Recursive                                                 
/home/ondrej/Desktop                                                                                                                                                                *
/home/ondrej/Documents                                                                                                                                                              *
/home/ondrej/Music                                                                                                                                                                  *
/home/ondrej/Pictures                                                                                                                                                               *
/home/ondrej/Videos                                                                                                                                                                 *
/home/ondrej/Downloads                                                                                                                                                              *
/home/ondrej                                                                                                                                                                        -
/home/ondrej/Downloads                                                                                                                                                              -

Re:Databáze souborů na disku
« Odpověď #10 kdy: 20. 07. 2023, 13:42:18 »
nejsem si jist, jestli duplicity jsou to, co te skutecne pali.

Tak si zkus precist muj puvodni post jeste jednou :D

Nahromadila se mi takhle spousta duplikatu a potreboval bych to nejak automaticky prebrat.

neni to spis o metadatech?

Nikoliv, je to o duplicitnich binarnich (velmi casto duplicitnich ve smyslu ze maji stejny hash) souborech na disku.

pro mne pro filmy a serialy je dobryou ukazkou "Media Center Master

Tohle jsem sice neznal, ale umi to rozpoznat a smazat duplicity? Z dokumentace se mi to tak nejevi.

Hledáte rovnák na vohejbák.
Ideální řešení je třídit to rovnou nebo s minimálním zpožděním. Když to nejde samo, tak s prostě nějak přinutit - např mít málo místa na disku kam stahuju. Pak holt NEJDE stáhnout nic dalšího, dokud do archivu nepřesunu to, co už jsem nasyslil. Nebo skript, který po týdnu automaticky smaže /download. Nestihnu to? Tak to asi nebylo důležité

Pripada mi to asi jako kdybych se ptal, co mam delat, kdyz mam rymu a vy byste mi poradil, ze jsem ji nemel vubec chytit :D Diky no...

Re:Databáze souborů na disku
« Odpověď #11 kdy: 20. 07. 2023, 13:46:58 »
Edit: a nad tím si postavit to hledání duplicit.

O tohle se v GNOME stará tracker.

https://wiki.gnome.org/Projects/Tracker

Trackuje definované složky a indexuje soubory.

tracker3 index
Path                                                                                                                                                                                Recursive                                                 
/home/ondrej/Desktop                                                                                                                                                                *
/home/ondrej/Documents                                                                                                                                                              *
/home/ondrej/Music                                                                                                                                                                  *
/home/ondrej/Pictures                                                                                                                                                               *
/home/ondrej/Videos                                                                                                                                                                 *
/home/ondrej/Downloads                                                                                                                                                              *
/home/ondrej                                                                                                                                                                        -
/home/ondrej/Downloads                                                                                                                                                              -

Re:Databáze souborů na disku
« Odpověď #12 kdy: 20. 07. 2023, 13:54:29 »
Edit: a nad tím si postavit to hledání duplicit.

O tohle se v GNOME stará tracker.

https://wiki.gnome.org/Projects/Tracker

Trackuje definované složky a indexuje soubory.

tracker3 index
Path                                                                                                                                                                                Recursive                                                 
/home/ondrej/Desktop                                                                                                                                                                *
/home/ondrej/Documents                                                                                                                                                              *
/home/ondrej/Music                                                                                                                                                                  *
/home/ondrej/Pictures                                                                                                                                                               *
/home/ondrej/Videos                                                                                                                                                                 *
/home/ondrej/Downloads                                                                                                                                                              *
/home/ondrej                                                                                                                                                                        -
/home/ondrej/Downloads                                                                                                                                                              -

Ano, tohle je super, diky, podivam se na to.

Re:Databáze souborů na disku
« Odpověď #13 kdy: 20. 07. 2023, 14:12:44 »
Edit: a nad tím si postavit to hledání duplicit.

O tohle se v GNOME stará tracker.

https://wiki.gnome.org/Projects/Tracker

Trackuje definované složky a indexuje soubory.

tracker3 index
Path                                                                                                                                                                                Recursive                                                 
/home/ondrej/Desktop                                                                                                                                                                *
/home/ondrej/Documents                                                                                                                                                              *
/home/ondrej/Music                                                                                                                                                                  *
/home/ondrej/Pictures                                                                                                                                                               *
/home/ondrej/Videos                                                                                                                                                                 *
/home/ondrej/Downloads                                                                                                                                                              *
/home/ondrej                                                                                                                                                                        -
/home/ondrej/Downloads                                                                                                                                                              -

Tak jsem to prozkoumal trochu vic do detailu a ta zakladni vec o kterou se mi jedna jsem ctenim dokumentace ani nahlednutim do kodu nenasel: tj. hledani podobnosti na zaklade filename nebo stejny hash.

Rozumim tomu, ze to zrejme pujde nejak udelat pomoci SPARQL, ale obavam se, ze ty queries by nebyly uplne trivialni. Otazka je, jestli tracker vubec uklada hashe souboru. Respektive pro trackovani souboru to je asi fajn, ale tak se mi zda, ze bych stejne musel postavit vcelku dost dalsiho kodu okolo + nastudovat dokumentaci.

Posledni vec, ktere jsem si vsimnul. Je to asi spis mene dulezite a sam jsem to zminoval, ale je to tohle (z jejich gitlab readme):

"Depend on features of a specific filesystem. Tracker should work on all commonly used filesystems."

tj. oni asi neprijimaji notifikace ze systemu o pridanych souborech, ale pravidelne filesystem scanuji - coz bych spis nechtel.

Re:Databáze souborů na disku
« Odpověď #14 kdy: 20. 07. 2023, 15:08:33 »
Drzal by som sa tych specializovanych toolov na vyhladavanie duplicit - kde inde by tie funkcie mali byt ak nie v nich. Kukni napriklad toto:
https://dupeguru.voltaicideas.net/
Vie vyhladavat na zaklade podobnosti nazvu a podobne...