尝试通过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
EXPERTO
preguntada hace 5 meses11 visualizaciones
1 Respuesta
0

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

profile picture
EXPERTO
respondido hace 5 meses

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.

Pautas para responder preguntas