1. Create code that listeners for S3 events, and pushes those new assets to AEM Assets (this code is all outside of AEM)
2. Create code in AEM (such as a Sling Scheduler [1]) that polls the S3 bucket intermittently (whatever frequency you want; every 1 min, every 10 min, etc.) and pulls in any new assets (since the last poll).