尝试通过CloudFront GET那些通过AWS SDK上传到S3存储桶的对象时,访问被拒绝。

0

【以下的问题经过翻译处理】 通过使用client-s3 SDK Signed URL,我能够将对象PUT到我的s3桶中,或者DELETE它们。但是,当我尝试通过cloudfront的GET请求访问相同的对象时,访问被S3拒绝(Access Denied)。我已经将桶策略设置为允许来自我的cloudfront分布的GET请求。我知道它能工作,因为当我通过s3控制台上传对象时,我可以使用cloudfront签名URL从s3获取对象,那很有效。但是一旦我以编程方式使用client-s3来上传对象,我无法通过我的cloudfront分配GET它。

profile picture
专家
已提问 5 个月前8 查看次数
1 回答
0

【以下的回答经过翻译处理】 我发现这个问题是因为我给bucket里的object命名的方式造成的(和字符编码有关)。在为PUT请求生成S3 Pre-signed URL的时候,我在每个object的名称里添加了ISO8601格式的时间戳。但是当CloudFront试图访问它的时候,日期字符串里的一些字符改变了,导致CloudFront试图访问的object并不存在,结果就是S3拒绝了访问。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则