Hi Steve,
If you don't mind using Flex/Flash to do the client side UI, you can upload directly to S3 with a progress bar using a POST. The api keys get encrypted so no worries about loosing them. http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1092
Good luck, Michael