首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有子目录的S3的API网关代理

带有子目录的S3的API网关代理
EN

Stack Overflow用户
提问于 2018-05-30 09:18:25
回答 5查看 11.2K关注 0票数 18

我为"S3“创建了一个集成类型为"AWS服务”的API方法GET。我定义了从method.request.path.item映射的路径覆盖:{object}

只要路径只包含存储桶本身,它就可以工作,并且{item}的值是(./bucket/mybucketname),mybucketname

但是,例如,当我指定../bucket/mybucketname/foo/bar/test.txt作为路径时,{item}值应该是mybucketname/foo/bar/test.txt,但它是。我想是因为嵌套路径

当选择catch-所有路径变量{proxy+}时,无法再选择集成类型"AWS“。

有什么暗示,我做错了什么,或者我应该做什么,以便通过S3网关从子文件夹中检索文件/文件夹?

EN

回答 5

Stack Overflow用户

发布于 2020-02-21 10:09:29

这可以使用代理资源来完成。

以下是我实现@Johnny90 90想要的目标的步骤:

  1. 单击API网关控制台中的API。
  2. 选择/bucket资源,然后从Actions下拉菜单中选择Create。然后,在“新建子资源窗格”中执行以下操作。勾选“配置为代理资源”。 使用默认的proxy作为资源名称。 c.资源路径使用{proxy+}。 选择“创建资源”。
  3. 为Integration选择HTTP,并将端点URL键入为任意网站(例如,https://my-website.com/{ Proxy } )。那就选择保存。
  4. 选择集成请求 a.选择AWS服务作为集成类型。 从AWS区域下拉列表中,选择您的S3桶所在的区域。 从AWS服务中选择S3。对于AWS子域,将其保留为空白。 对于HTTP方法,选择GET。 选择操作类型的“使用路径覆盖”。并键入bucket/{proxy}。 粘贴具有足够权限的IAM角色。 单击“保存”。

在将集成请求从HTTP代理集成更改为AWS服务之后,我们必须为API添加一些设置。首先,必须设置URL参数,以便API能够理解集成请求中资源路径中定义的{proxy}变量。

  1. 在Integration中扩展URL路径参数,然后选择添加路径。
  2. 在Name列中键入proxy,在映射的from列中键入method.request.path.proxy

第二,从方法执行中选择方法响应。

  1. 选择添加响应。输入200表示HTTP状态。
  2. 展开200代码的响应。 选择“添加标题”。键入Content-Type作为名称。 单击“添加响应模型”。键入application/json for Content type并从“模型”下拉菜单中选择“空”。

最后,从方法执行中选择Integration。

  1. 扩展200方法响应状态
  2. 对于标头映射,您应该在Response列中看到Content。在“映射值”列中键入integration.response.header.Content-Type

以下是我的配置:

整合请求:

综合对策:

方法答复:

票数 18
EN

Stack Overflow用户

发布于 2018-09-14 06:06:11

关键是如何在路径覆盖中传递{object}变量的值。我认为您为来自请求路径的集成请求设置了url路径参数,如下所示:

代码语言:javascript
复制
object = method.request.path.object     

我认为问题是因为对象中有"/“,api路径(资源)也是如此。这使得api网关只能在根路径中识别对象。

我所做的是为来自请求querystring的集成请求设置url路径参数,如下所示:

代码语言:javascript
复制
object = method.request.querystring.object

它起作用了

或者您可以尝试使用url编码对对象路径进行编码,将'/‘替换为'%2F’。不过我从来没试过。

票数 7
EN

Stack Overflow用户

发布于 2018-06-05 04:26:29

@johnny90 90,首先将其配置为lambda代理,同时将资源{proxy+}...After creating..update集成类型创建为"AWS服务“.Then,您可以将任何AWS服务配置到您的API网关。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50600893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档