将二进制文件从api网关上传到S3存储桶

时间:2017-04-05 15:17:46

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

我正在尝试创建一个rest zip,它可以将zip文件作为输入(PUT requst)并将其存储在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

enter image description here

当我从帖子中尝试api时,我得到了

  

  AccessDenied存取   DeniedF55D45C185A5BF11HXopfmxAxGNvmdi7PRp4c1j / wPYmGVTrkKbGXfZwofLOn7TRBPs3uFjer / 2UCIktynKtGeNU1Xw =

我的角色我已经获得了AmazonS3FullAccess权限,并已将角色分配给api网关设置和集成请求。

任何人都可以帮忙吗

2 个答案:

答案 0 :(得分:1)

看起来你正试图把它放到名为rest的存储桶中。 这是正确的桶吗?

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

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

这是一个有用的截图: enter image description here

答案 1 :(得分:0)

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

api gateway-binary support image