在Python中调用AWS API网关时出现403禁止错误

时间:2019-07-11 21:12:22

标签: python-requests aws-api-gateway

我在AWS中使用PUT方法设置了REST API,以将文件上传到S3存储桶。方法请求中的“授权”字段设置为“无”。我像这样用Python调用API:

file = {"file": open('file.jpg', 'rb')}

requests.put(https://api-id.execute-api.us-east-1.amazonaws.com/Prod/bucketname/filename, files=file) 

但是,每次运行此命令时,它都会返回错误:

"403 Client Error: Forbidden for url: https://api-id.execute-api.us-east-1.amazonaws.com/Prod/bucketname/filename"

这对我来说没有意义;授权设置为NONE,因此任何人都应该可以调用API-为什么我会被“禁止”?此外,该请求在Postman中的运行情况也非常好-我能够调用API并上传文件,并返回“ 200成功”。

我搜索了Google和StackOverflow上的其他帖子都无济于事。发生了什么事?

1 个答案:

答案 0 :(得分:0)

弄清楚了,我没有将那些文件类型添加到“设置”中的“二进制文件类型”部分,而是将二进制文件发送到网关。由于某种原因,这导致了403禁止错误(即使这根本不是身份验证问题)。