A company is developing a document review application that uses Amazon S3 to store files. The architecture must ensure that users can retrieve and revise documents, and must also retain all versions of a document over time. Additionally, the system should protect against accidental or unauthorized deletions. What actions should a solutions architect take to fulfill these requirements?