我在AWS Bucket上有文件。该文件应该可以在url上访问,但是这个特定的url已经过期(有效期为两周),现在我需要一些地方使该文件在url上可以访问。
尝试访问URL时,我收到以下错误消息:
this XML file does not appear to have any style information associated with it. The document tree is shown below "
并显示带有错误代码的
AccessDenied
和消息Request has expired
答案 0 :(得分:0)
完全不可能将S3预签名URL的生存期延长到其原始到期时间戳之外。
回顾两种可能的签名算法背后的逻辑,Signature Version 2(已过时,可以通过查询字符串中存在
class House {
constructor() {
this.kittens = []
}
addKittens(numOfKittens) {
for (let i = 0; i < numOfKittens; i++) {
const newKitten = new Kitten(`Kitten ${i}`)
this.kittens.push(newKitten)
}
}
}
来标识)和Signature Version 4(已标识) (在查询字符串中用AWSAccessKeyId
来表示),这很清楚为什么如此-服务未保留签名URL的副本,并且expiration参数是HMAC-SHA签名过程的输入之一,因此可以有效防止篡改。
您需要生成或获取一个新的预签名URL。
奖励琐事:当预签名URL过期时,S3甚至无需费心验证签名是否正确或用于生成签名的凭据是否有效-请求立即被拒绝。