我在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上的其他帖子都无济于事。发生了什么事?
答案 0 :(得分:0)
弄清楚了,我没有将那些文件类型添加到“设置”中的“二进制文件类型”部分,而是将二进制文件发送到网关。由于某种原因,这导致了403禁止错误(即使这根本不是身份验证问题)。