

Make a script. I’d use xonsh or python with sh.py.
- create a dict for remote to local filename map
- walk your local collection
- for each file, determine what the correct remote name (including a valid extension) would be, and add the pair to the dict, with remote filenames as keys, local filenames as values
- make a set like
local_munged_names
from that dict’s keys - walk your remote tree, and store the filenames in a set like
remote_names
names_to_upload = local_munged_names - remote_names
- for each name in names to upload, look up the local filename from the remote to local filename map. Then, encode it if it needs encoding, and upload.
It’s you, not them.