尝试通过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달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠