根据策略无效:策略条件失败:来自邮递员的 ["eq"、“$acl”、"public-read"]
Invalid according to Policy: Policy Condition failed: ["eq", "$acl", "public-read"] from postman
嘿,我用它来设置使用预签名 url 直接上传到 S3。
https://devcenter.heroku.com/articles/s3-upload-python
在 Cors 政策中,我保留了:
允许的来源 *
其余一切都一样。
收到预签名响应后,我使用 postman 尝试将图像文件上传到 s3。
但是似乎出现错误:
"Invalid according to Policy: Policy Condition failed:"eq", "$acl", "public-read""
我想我搞砸了 cors 政策什么的。
PS:public 对 S3 存储桶的访问全部被阻止...我需要禁用它才能正常工作吗?
bucket policy也是空白..我需要在那里添加一些东西吗?
(对不起菜鸟的东西)。
提前致谢。
根据您引用的 link,您生成的预签名 URL 允许上传的对象 public 可读,而存储桶块 Public访问存储桶及其对象。
如果存储桶中的对象可以 public 公开,您可以禁用阻止 public 访问的设置。请参阅文档 here.
或者,您可以更新 generate_presigned_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
)
嘿,我用它来设置使用预签名 url 直接上传到 S3。 https://devcenter.heroku.com/articles/s3-upload-python 在 Cors 政策中,我保留了: 允许的来源 * 其余一切都一样。
收到预签名响应后,我使用 postman 尝试将图像文件上传到 s3。 但是似乎出现错误:
"Invalid according to Policy: Policy Condition failed:"eq", "$acl", "public-read""
我想我搞砸了 cors 政策什么的。
PS:public 对 S3 存储桶的访问全部被阻止...我需要禁用它才能正常工作吗?
bucket policy也是空白..我需要在那里添加一些东西吗? (对不起菜鸟的东西)。
提前致谢。
根据您引用的 link,您生成的预签名 URL 允许上传的对象 public 可读,而存储桶块 Public访问存储桶及其对象。
如果存储桶中的对象可以 public 公开,您可以禁用阻止 public 访问的设置。请参阅文档 here.
或者,您可以更新 generate_presigned_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
)