微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在传入请求中捕获 gin.Context 以支持 Gin Router 虚拟主机?

如何解决如何在传入请求中捕获 gin.Context 以支持 Gin Router 虚拟主机?

我正在编写一个实现 S3 REST API 的 API,特别是以一种允许您使用 Go S3 SDK 来调用 s3.CreateBucket 等函数的方式。

将我的 API 地址设置为 s3.Session 的端点并强制基于路径的主机样式,这按预期工作,但是 SDK 认为虚拟主机样式的 URI,我想支持这一点,因为看来基于路径的样式将在未来的某个时候贬值。

我的第一个想法是使用中间件捕获传入的请求,并从那里向正确的路由发送请求,因为路由及其处理程序函数都不会在逐个主机的基础上发生变化,但是由于 SDK 将请求发送到 ' bucketName.localhost:8000' 我只收到请求错误(没有这样的主机),我在中间件中设置的断点用于捕获传入的请求从未到达。

我已经读到一个可能的解决方案是为每个虚拟主机设置一个新路由器,但是这个问题甚至阻止了创建新存储桶(虚拟主机)的请求进入 Gin 路由器。

此外,为每个虚拟主机创建一个新的路由器可能有点矫枉过正,有什么方法可以让我的 Gin 路由器捕捉到任何虚拟主机的所有传入请求?

如果有人有任何意见或建议,我将不胜感激。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。