Your S3 bucket needs a CORS (Cross-Origin Resource Sharing) policy to accept uploads directly from your app. Make sure this is configured correctly in your bucket's permissions.