add s3 upload functionality