尝试通过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 個月前檢視次數 11 次
1 個回答
0

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

profile picture
專家
已回答 5 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南