如何解决AWS S3 路由重写
我想设置我的 S3 存储桶以将路由 /api
的路径重写为 API 网关 URL。
所以采取以下措施:
- 用户访问网站 bacon.com
- 网站从 Cloudflare DNS 迁移到 S3 存储桶
- 网站是一个反应应用
- React 应用调用 api,它是
bacon.com/api
- S3 将
/api
路径重写为 api 网关 urlhttps://ljsdflkjlsdk.execute-api.us-east-1.amazonaws.com/dev
我能够在这里工作:
但是,它将 URL 转发到不需要的 API 网关 URL。
我不完全确定这是可能的。我在想这可能需要我实现 Route53 之类的东西,或者编写一个 cloudflare worker 来处理重写?
预先感谢您的帮助!
解决方法
因此,您希望代理对后端 API 的 /api
路径的请求,而其他路由,例如/login
由 React 应用提供。
我可能错了,但我认为 S3(作为静态托管服务提供商)和 Route 53(作为 DNS 工具)都无济于事。
既然您提到您已经在使用 Cloudflare,那么您可以毫不费力地使用 CF Workers 做到这一点!
- 确保
bacon.com
由 CF 代理(DNS 选项卡上的橙色云开启) - 使用以下代码创建一个新工作器:
const backendUrl = "https://ljsdflkjlsdk.execute-api.us-east-1.amazonaws.com/dev"
addEventListener('fetch',event => {
event.respondWith(handleRequest(event.request))
})
/**
* Respond to the request
* @param {Request} request
*/
async function handleRequest(request) {
return fetch(backendUrl,request)
}
- 将工作人员与
/api
的工作人员选项卡上的bacon.com
路径相关联 -
bacon.com/api
现在是向后端 url 发送请求的代理!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。