gpt4 book ai didi

amazon-web-services - 带有子目录的 S3 API 网关代理

转载 作者:行者123 更新时间:2023-12-02 23:14:08 25 4
gpt4 key购买 nike

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

Integration Request

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

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

当我选择包罗万象的路径变量 {proxy+} 时,我无法再选择集成类型“AWS 服务”。

任何提示我做错了什么或者我应该做什么才能通过 API 网关从 S3 检索子文件夹中的文件/文件夹?

最佳答案

这可以使用 proxy resource 来完成。

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

  1. 在 API Gateway 控制台中点击您的 API。

  2. 选择 /bucket 资源,然后从操作下拉菜单中选择创建资源。然后,在“新建子资源” Pane 中执行以下操作。

    a.勾选“配置为代理资源”。

    b.使用默认的代理作为资源名称。

    c.使用 {proxy+} 作为资源路径。

    d.选择创建资源

  3. 选择 HTTP 代理作为集成类型,并输入任意网站的端点 URL(例如 https://my-website.com/ {proxy} )。然后选择保存

  4. 选择集成请求

    a.选择AWS 服务作为集成类型。

    b.从 AWS 区域下拉列表中,选择您的 S3 存储桶所在的区域。

    c.从 AWS 服务中,选择 S3。对于 AWS 子域,请将其留空。

    d.对于 HTTP 方法,选择 GET。

    e.为操作类型选择使用路径覆盖。并输入bucket/{proxy}

    f.粘贴具有足够权限的 IAM 角色。

    g。点击保存

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

  1. 在集成请求中扩展URL 路径参数,然后选择添加路径

  2. 在“名称”列中键入 proxy,在“映射自”列中键入 method.request.path.proxy

其次,从方法执行中选择方法响应

  1. 选择添加响应。输入 200 作为 HTTP 状态。

  2. 展开 200 代码的响应。

    a.选择添加标题。输入 Content-Type 作为名称。

    b.单击添加响应模型。输入 application/json 作为内容类型,然后从模型下拉菜单中选择

最后,从方法执行中选择集成响应

  1. 延长 200 方法响应状态

  2. 对于 header 映射,您应该在响应 header 列中看到内容类型。在“映射值”列中输入“integration.response.header.Content-Type”。

以下是我的配置:

集成请求: enter image description here

集成响应: enter image description here

方法响应: enter image description here

关于amazon-web-services - 带有子目录的 S3 API 网关代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50600893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com