Javascript S3.createPresignedPost()条件错误返回用户上载内容所需的确切条件
向一组预先签名的post参数添加Javascript S3.createPresignedPost()条件错误返回用户上载内容所需的确切条件,javascript,typescript,amazon-web-services,amazon-s3,cloud,Javascript,Typescript,Amazon Web Services,Amazon S3,Cloud,向一组预先签名的post参数添加条件时,例如: const params: PresignedPost.Params = { Expires: 7200, Bucket: myBucket, Conditions: [ ['eq', '$key', filename], ['content-length-range', 1, defaultUploadLimit], ]
条件时,例如:
const params: PresignedPost.Params = {
Expires: 7200,
Bucket: myBucket,
Conditions: [
['eq', '$key', filename],
['content-length-range', 1, defaultUploadLimit],
],
};
然后使用此预先签名的URL将内容发布到我的bucket,如果用户在第一次尝试时不满足条件,则错误消息将返回用户需要传递条件的确切密钥:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>AccessDenied</Code>
<Message>Invalid according to Policy: Policy Condition failed: ["eq", "$key", "myfile.txt"]</Message>
<RequestId>yaddayadda</RequestId>
<HostId>yaddayadda</HostId>
</Error>
这对我们来说是一个巨大的安全隐患,我们不能在摄取/检索过程的任何时候显示敏感文件名
我们还需要以某种方式验证用户正在上载的文件,因为这无法使用预签名帖子对内容类型进行验证,我看不到其他方法可以实现这一点
有人知道是否有办法限制S3错误消息吗?或者使用不泄露敏感信息的预签名帖子验证用户上传内容的另一种方法