I like the cdfinder suite of products, neofinder on Mac, abemedia on windows and Linux. It keeps in depth catalogs and thumbnails of media for long term archives. You can also save scans from beyond compare so you can do a sync comparison of files against an pre scanned offline media.
post
Before unmounting:
$ tree -afx /PATH/TO/VOLUME > file_listing.txt
Later, when you want to search:
$ grep PATTERN file_listing.txt
Not a GUI/webapp, but I like to use ncdu snapshots ("exports"). ncdu is an interactive file browser / disk usage analyzer with a terminal UI, which allow for convenient browsing but also, y'know, figuring out what to delete in case of storage cleanups.
creating a snapshot ("exporting"):
ncdu /pathyouwanttoscan -2 --one-file-system --compress -o snapshot_ncdu.json.zstd
(-2 enables progress bar and error messages during the scan)
reading ("importing"):
ncdu -f snapshot_ncdu.json.zstd
What kind of media files? For a typical media collection something like Emby or Jellyfin is quite nice. Then you have your collection and it would just refuse to play media if the file in question isn’t mounted.
High res image sadly, otherwise I would go the Jellyfin route
I heavily use Immich for images and am very happy. Since you can specify custom storage locations it might be worth a shot adding your external storage, let it index everything and then test how it behaves when the external storage is offline. Maybe it keeps thumbnails separate too then you could even browse the library visually and you would only run into errors once you try to open an image.
Haven't used it yet, but I think git annex is built for this. Plan to do the same eventually. It lets you keep the index on hot storage.
Lots of good ideas here. For other reasons I use:
find /path/to/mount -xdev -printf '%p\t%y\t%s\t%T@\n' | zstd > /path/to/output_fs.tsv.zst
on a regular basis. For convenience I also munge the output into json so that it can be piped into gdu -f - for a very convenient tui interface; but you could also just pass -o to gdu and save the resulting json. Very convenient.
If generating of a local index isnt a problem ...
Something like snap2html which makes the index browsable.
Like, find /your/mount -print |sort > files.list?
And then the same for the new dir and using any diff viewer for differences or grep -f for automation.
You mean like that?
Something like Katalog? https://stephanecouturier.github.io/Katalog/
I'd probably write a bash script that recursively goes through the disk and creates any folders it sees on another path, and when it finds a file it creates a corresponding empty file with the same name. If you want more info you could script some metadata tools that extract the info and create a dummy media file with the same metadata.
need it to be a hierarchical thing? otherwise just cp -vur src/ dst/ >> files.txt && sort -bdufo files.txt files.txt and look in the file.
all 18 comments