It's not mentioned, but important to note, that R2 lacks object versioning.
https://community.cloudflare.com/t/r2-object-versioning-and-...
I built a thin Cloudflare workers script for object versioning and it works great
Ouch. Object versioning is one of the best features of object storage. It provides excellent protection from malware and human error. My company makes extensive use of versioning and Object Lock for protection from malware and data retention purposes.
As @yawnxyz mentioned, versioning is straightforward to do via Workers (untested sample: https://gist.github.com/CharlesWiltgen/84ab145ceda1a972422a8...), and you can also configure things so any deletes and other modifications must happen through Workers.