I think when a user uploads files, nothing should be done at this stage by default, as it heavily affects user experience (for example, if I upload 10 files, the completion speed for all will be quite slow).
After the file is uploaded, transfer it to R2 (using wp-cron, for instance). You could create a form for the user to set the wp-cron execution time, especially if the user utilizes image compression or similar methods.
Once the files are transferred to R2, update the image links within the post (using save_post, for example).
There should be an option to permanently delete the original file after successfully uploading it to R2.
