首页 > 解决方案 > 具有多个路径部分的 API Gateway REST API 集成请求路径重写

问题描述

我有一个与 S3 集成的 API Gateway REST API。我们不想直接公开存储桶和对象键,因此有一个授权器获取路径参数并返回对象键。该对象键可以包含许多路径参数,例如path/to/object. 我希望能够重写集成路径以包含它。

当我尝试使用路径变量时,值会被替换,但它是 URL 编码的,也就是说,path%2Fto%2FobjectS3 请求当然会失败。我看不到用包含多个路径参数的值替换路径变量的任何方法。我也尝试过#context.requestOverride.path.XXX在映射模板中使用相同的东西,它也以 URL 编码结束。我尝试过使用$utils.urlDecode(),但结果再次被编码。

有没有办法用多个路径段替换路径变量?否则,有没有办法完全替换映射模板中的路径(不仅仅是特定的路径变量)?或者是否有另一种方法来实现这一点,例如对象键可以在标题中传递吗?

标签: amazon-web-servicesamazon-s3aws-api-gateway

解决方案


推荐阅读