Sounds like something like “git annex” is what you’re looking for?
I use this to manage all my photos. It lets you add binaries and synchronize then to a backend server (can be local, can be s3, back blaze, etc).
You can then “drop” files and it ensures a remote exists first. And when you drop the file your still see a symlink of it locally (it’s broken) so that you know it exists.
My workflow is to add my files, sync them to both a local server and b2, then I drop and fetch folders as i need (need disk space? “git annex drop 2022*”, want to edit some photos? “git annex get 2022_10_01”.