【问题标题】:Couldn't call aws api gateway from postman无法从邮递员调用 aws api 网关
【发布时间】:2017-04-10 23:12:15
【问题描述】:

我在 amazon api 网关服务中使用 s3 代理创建了一个 api,并创建了一个方法 post 使用 document 将文件上传到 s3。部署了 API,然后使用该 url 我尝试从邮递员调用 api。但我无法发布文件,它返回错误“缺少身份验证令牌”。

我将授权设置为 NONE。

然后它返回一个意外的“

【问题讨论】:

  • 您能否提供您在 API 网关日志中看到的错误?
  • "message": "Unsupported Media Type" , 如何设置 api 网关以便我可以将音频上传到 s3
  • PreconditionFailed您指定的前提条件中至少有一个不成立Bucket POST 必须是附件-输入 multipart/form-data

标签: amazon-s3 postman aws-api-gateway


【解决方案1】:

啊,好吧。 S3 仅支持来自 HTML 表单的 POST,这就是为什么您会在期望多部分表单数据的地方看到错误的原因。

您需要使用的方法是 PUT,而不是 POST。 PUT 需要项目路径,因此您需要更改资源路径以拥有存储桶和密钥,或者从其他地方获取。

我有更多关于如何在upload binary from api gateway to S3 bucket 中设置的信息

【讨论】:

  • 谢谢马克,我可以把 x-amz-tagging 连同这个一起发送吗?
  • 是的,您可以将 x-amz-tagging 与您的 S3 对象一起传递。这是一个 Swagger def 的示例,其中 x-amz-acl 被传递到 S3:docs.aws.amazon.com/apigateway/latest/developerguide/…
  • 我需要将来自客户端的标签与音频一起发送,现在音频已成功上传到 s3,但我发送的标签不存在于该对象的标签字段中
  • 嗨,马克,创建了一个问题,stackoverflow.com/questions/43341378/…
【解决方案2】:

听起来您上传的文档不是 JSON。默认情况下,API Gateway 需要 UTF-8 编码的 JSON。

您通过 Postman 请求发送的内容类型是什么?

【讨论】:

  • 嗨,内容类型是音频/mpeg
  • PreconditionFailed您指定的前提条件中至少有一个不成立Bucket POST 必须是附件-输入 multipart/form-data
猜你喜欢
  • 1970-01-01
  • 2022-07-10
  • 2017-10-19
  • 2017-11-13
  • 2020-09-25
  • 1970-01-01
  • 1970-01-01
  • 2020-04-21
  • 2016-10-05
相关资源
最近更新 更多