Update `s3_media_upload` to handle thumbnails
Media are now considered deleted only if both the original file and all
thumbnails have been deleted.
`cache.db`s built before this change may incorrectly count media as
deleted while their thumbnails still exist in the local cache. This can
be resolved by either:
a) deleting `cache.db` and running an `update` to crawl through the
entire local cache again. This may take an extremely long time for
large Synapse deployments.
b) uploading the contents of local_thumbnails/ and remote_thumbnail/
manually, then deleting the uploaded files. Note that a running
Synapse instance may write new thumbnails during the process.
If the S3 storage provider has been installed since the very start
and configured to store both local and remote media synchronously,
all thumbnails should already be in S3 and the upload step can be
skipped.
This commit changes the behavior of the `write` command. Previously,
`write` would only output undeleted file paths. Now the output contains
a mix of file and thumbnail directory paths, which may sometimes already
be deleted / not exist.
Reviewable commit by commit