部署至AWS Amplify后next/image无法加载S3图片求助
AWS Amplify部署后S3图片无法显示的常见原因
- Amplify图片优化服务的权限冲突:Amplify默认启用图片优化代理,会转发S3图片请求并做优化处理。如果S3桶的权限(桶策略、CORS)未允许Amplify的优化服务访问,就会触发该错误。Vercel没有强制启用这类代理,直接请求S3所以正常。
- S3桶CORS规则配置不全:检查S3桶的CORS规则,是否添加了Amplify部署域名的跨域许可。Vercel的域名可能已在规则内或请求方式不受限制,而Amplify域名未被允许,导致跨域请求被拦截。
- Amplify重写/重定向规则错误:若Amplify控制台设置的重写规则不当,可能会错误转发S3图片请求至其他服务,导致上游响应无效。Vercel的路由逻辑无此冲突,因此图片正常加载。
- S3对象访问权限不足:确认S3图片对象是否设为公开可读,或Amplify服务拥有读取该对象的IAM权限。如果对象私有且Amplify无访问权限,就会返回上游错误;而Vercel可能通过带签名的请求或对象本身权限配置正确实现正常访问。
- Amplify缓存异常:Amplify可能缓存了旧的图片路径或错误响应,导致请求异常。Vercel的缓存策略不同,未出现此类问题,可尝试在Amplify控制台清除缓存后重新部署。
内容的提问来源于stack exchange,提问作者Nikhil Shrestha
相关产品推荐
相关产品推荐

