Amazon web services 根据策略无效:策略条件失败:[“eq”、“acl”、“public read”]from postman
嘿,我用这个来设置直接上传,使用预先签名的url到S3。 在Cors政策中,我遵守: 允许原产地* 休息吧,一切都一样 在收到预先签名的响应后,我使用postman尝试将图像文件上载到s3。 但似乎出现了一个错误:Amazon web services 根据策略无效:策略条件失败:[“eq”、“acl”、“public read”]from postman,amazon-web-services,amazon-s3,postman,pre-signed-url,Amazon Web Services,Amazon S3,Postman,Pre Signed Url,嘿,我用这个来设置直接上传,使用预先签名的url到S3。 在Cors政策中,我遵守: 允许原产地* 休息吧,一切都一样 在收到预先签名的响应后,我使用postman尝试将图像文件上载到s3。 但似乎出现了一个错误: "Invalid according to Policy: Policy Condition failed:"eq", "$acl", "public-read"" 我想我把cors的政策搞砸了 PS:对S3存储桶的公共访问全部被阻止…我需要禁用它才能工作吗 bucket策略也为空
"Invalid according to Policy: Policy Condition failed:"eq", "$acl", "public-read""
我想我把cors的政策搞砸了
PS:对S3存储桶的公共访问全部被阻止…我需要禁用它才能工作吗
bucket策略也为空。是否需要在此处添加内容。
(很抱歉,这是努布的事)
提前感谢。根据您引用的链接,您正在生成的预签名URL允许上传的对象公开可读,而bucket阻止了对bucket及其对象的公开访问 如果bucket中的对象可以公开,则可以禁用阻止公共访问的设置。请参阅文档 或者,您可以更新
generate\u presigned\u post
方法,将ACL设置为私有
presigned_post = s3.generate_presigned_post(
Bucket = S3_BUCKET,
Key = file_name,
Fields = {"acl": "private", "Content-Type": file_type},
Conditions = [
{"acl": "private"},
{"Content-Type": file_type}
],
ExpiresIn = 3600
)
问题中引用的错误消息与CORS无关。嘿,Franks,谢谢你的帮助…因此根据你的建议,我取消了所有阻止公共访问,并为公共获取对象添加了一个策略…现在的问题是我获取拒绝访问错误(403)当我尝试使用预先签名的url上载文件时……请注意,我用于生成url的用户具有完全的s3访问权限。bucket策略如下,{“版本”:“2012-10-17”,“语句”:[{“Sid”:“PublicReadForGetBucketObjects”,“效果”:“允许”,“主体”:“操作”:“s3:GetObject”,“Resource”:“arn:aws:s3:::img bucket/”}]}您正试图通过预签名的URL上载对象。请在策略中添加
PutObject
权限。为什么?我用于创建预签名URL的用户已将fullAccessToS3策略附加到该策略。嘿,Franks…能够解决此问题…我被许多角色弄糊涂了,并将权限授予了不正确的角色,这导致了问题…非常感谢s、 …现在我可以睡觉了。。