mOS supports the connection to AWS IoT Core via MQTT. Whatever you can send using MQTT you can catch with a rule and redirect to other AWS services.
There are several examples around on the use of mOS to interact with AWS, I can point you to the tutorial at the documentation site and if you search this forum you’ll also find those of my own (though they are in Spanish).
The level of efficiency will depend on your file length and upload frequency. We can also discuss the actual need for uploading a file vs doing whatever you have to do in some other (more constrained-embedded-systems-friendly) way.
If you do need to interface to S3 and that has an HTTPS API (I think so), you could try using Mongoose (the web server/client) for that, which to some percentage is fully available inside Mongoose-OS, though I have no idea on how to use it and so I’m not able to help there.