【问题标题】:upload binary from api gateway to S3 bucket将二进制文件从 api 网关上传到 S3 存储桶
【发布时间】:2017-04-05 15:17:46
【问题描述】:

我正在尝试创建一个 rest api,它可以将 zip 文件作为输入(PUT 请求)并将其存储在 S3 上。

我正在关注http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-content-encodings-examples-image-s3.html上的教程

我收到 500 错误广告,cloudwatch 日志如下

验证请求的使用计划: c2140431-1a10-11e7-9f32-0df3853848fe。 API 密钥: API 阶段: xjjd186a30/rd

API 密钥已授权,因为方法“PUT /s3”不需要 API 密钥。

请求不会影响限制或配额限制

API Key 和 API Stage xjjd186a30/rd 的使用计划检查成功

开始执行请求:c2140431-1a10-11e7-9f32-0df3853848fe

HTTP 方法:PUT,资源路径:/s3

成功完成执行

方法完成,状态为:500

当我尝试来自邮递员的 api 时,我得到了

AccessDenied访问 拒绝F55D45C185A5BF11HXopfmxAxGNvmdi7PRp4c1j/wPYmGVTrkKbGXfZwofLOn7TRBPs3uFjer/2UCIktynKtGeNU1Xw=

我的角色我已授予 AmazonS3FullAccess 权限,并将该角色分配给 api 网关设置和集成请求。

谁能帮忙

【问题讨论】:

标签: amazon-web-services amazon-s3 aws-api-gateway


【解决方案1】:

您似乎正试图将其放入名为 rest 的存储桶中。 那是正确的桶吗?

此文档可能对您更有帮助: Integrating API with AWS S3

在文档中使用的示例中,在 PUT 项方法的路径覆盖中提供了 bucketobject。这些是从路径参数folderitem 映射的。

这是一个有用的屏幕截图:

【讨论】:

  • 我试过了,成功放了音频文件,但是我不能播放,我认为内容类型有问题!如何通过 api gateway 将音频文件作为 multipart/form-data 发送到 s3?
  • 您解决了如何将正确的内容类型发送到 s3 以便播放文件吗?
【解决方案2】:

如果您想上传 mp3、音频、文档等二进制文件,您可以在 AWS API Gateway 设置中的 Binary support 中添加一个值为 multipart/form-data 的条目,然后使用发布/放置二进制文件来自邮递员或 api 客户端的标头 Content-Type = multipart/form-data。它应该工作..!!

api gateway-binary support image

【讨论】:

    猜你喜欢
    • 2018-02-07
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 2021-10-14
    • 2017-03-02
    • 2018-03-25
    • 1970-01-01
    相关资源
    最近更新 更多