尝试通过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
EXPERTE
gefragt vor 5 Monaten11 Aufrufe
1 Antwort
0

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

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen