这归结为身份验证(你是谁)与授权不同(你可以做什么)。签名URL只是一种将自己作为特定AWS用户进行身份验证的方式(而不仅仅是匿名),它不会授予任何特殊授权。
一旦身份验证发生并且亚马逊知道您是谁,它仍然需要决定是否允许您执行请求的操作。您的存储桶策略表明没有人可以访问文件,因此请求被拒绝 请参阅政策文档 为什么你的存储桶策略评估这种方式
如果您的策略说您的用户可以访问文件但是其他任何人都无法访问您的签名网址(这基本上是私有方式,当您执行单独的文件权限时)
如果您在策略中添加一个语句
{ "Sid":"AddSpecific", "Effect":"Allow", "Principal": { "AWS": ["1234-5678-9012"] }, "Action":["Action": "s3:GetObject"], "Resource":["arn:aws:s3:::bucket/*"] }
然后你应该能够使用你签名的网址(显然用你的aws账号替换1234-5678-9012。如果你使用的是IAM,那么网络控制台的iam位有这些用户的标识符)