Amazon s3 将putObject直接从API网关中的HTTP API写入S3
我的意图是在AmazonAPI网关上创建一个HTTP API,通过S3API使用PutObject操作将文件写入S3(其间不调用Lambda)。这是PutObject请求语法: 我不确定这在技术上是否可行,我在Postman中得到了403 Forbidden:ForbiddenException响应 到目前为止,我已经:Amazon s3 将putObject直接从API网关中的HTTP API写入S3,amazon-s3,aws-api-gateway,aws-http-api,Amazon S3,Aws Api Gateway,Aws Http Api,我的意图是在AmazonAPI网关上创建一个HTTP API,通过S3API使用PutObject操作将文件写入S3(其间不调用Lambda)。这是PutObject请求语法: 我不确定这在技术上是否可行,我在Postman中得到了403 Forbidden:ForbiddenException响应 到目前为止,我已经: 创建了S3存储桶(配置了CORS) 在API网关中创建HTTP API(配置了CORS),并执行“putObject”POST操作 在HTTP API上将集成配置为https:
我自己设法解决了这个问题。回答我自己的问题: 这种类型的HTTP API集成是否可以直接与S3集成? 对。在我的HTTP API上,我使用了一个指向S3服务端点的HTTP PUT集成(端点中的bucket名称不正确) 服务403禁止响应的可能原因是什么? 我没有收到邮递员的请求,但是,当我从浏览器发出请求时,它起作用了。在通过navigator.beacon()将Blob作为请求发送到HTTP API端点URL之前,我必须在Javascript中创建一个Blob 我是否会在HTTP API集成配置中使用“Append”参数映射来添加标准S3 API参数(并避免将它们暴露给客户端)? 我必须使用参数映射才能从API网关获得S3 PutObject请求。我的配置如下所示 编辑:我在这里发现了这种方法的一个问题:HTTP API不允许在参数映射上添加某些与安全相关的头。我试图设置header.x-amz-acl:“bucket owner full control”,但收到以下错误消息: 指定的映射表达式无效:验证结果:警告:[],错误:[头x-amz-acl上的操作受到限制] 似乎在HTTP API中不可能修改任何与安全相关的S3API头。这是直接调用s3api的一个主要问题,因为这意味着为了工作,s3bucket需要是公共的