使用aws sdk为Nodejs下载文件不提供最新文件
Downloading file using aws sdk for Nodejs not giving most recent file
总结
我有一个 json 文件,每晚从自动测试服务中更新。我使用此 json 文件来更新 UI 以显示最近添加的内容。我正在使用 nodejs 和 aws-sdk 下载它。
问题
文件已更新。我已经下载并自己检查了。但是,使用 aws-sdk 以编程方式下载它不会显示更新的文件。它仍然给我一个过时的文件。
代码
代码相当简单:
var s3 = new AWS.S3();
var params ={
Bucket: 'vs2020',
Key: 'nightly/UT Results/UTR.json',
};
s3.getObject(params, function(err, data){
var response = new TextDecoder('utf-8').decode(data.Body)
var json = JSON.parse(response)
console.log(response)
}
我尝试更新通过其他堆栈溢出帖子找到的元数据,但无济于事。
例如我将cache-control
设置为max-age 0,no-cache,no-store,must-revalidate
认为这可能是语法错误,我也将 cache-control
设置为 max-age = 0
似乎都不起作用。
事实证明,S3 会保留文件的缓存,并且在一定时间后不会更新它。您必须按如下方式设置元数据字段:
cache-control
: max-age=0
总结
我有一个 json 文件,每晚从自动测试服务中更新。我使用此 json 文件来更新 UI 以显示最近添加的内容。我正在使用 nodejs 和 aws-sdk 下载它。
问题
文件已更新。我已经下载并自己检查了。但是,使用 aws-sdk 以编程方式下载它不会显示更新的文件。它仍然给我一个过时的文件。
代码
代码相当简单:
var s3 = new AWS.S3();
var params ={
Bucket: 'vs2020',
Key: 'nightly/UT Results/UTR.json',
};
s3.getObject(params, function(err, data){
var response = new TextDecoder('utf-8').decode(data.Body)
var json = JSON.parse(response)
console.log(response)
}
我尝试更新通过其他堆栈溢出帖子找到的元数据,但无济于事。
例如我将cache-control
设置为max-age 0,no-cache,no-store,must-revalidate
认为这可能是语法错误,我也将 cache-control
设置为 max-age = 0
似乎都不起作用。
事实证明,S3 会保留文件的缓存,并且在一定时间后不会更新它。您必须按如下方式设置元数据字段:
cache-control
: max-age=0