问题描述
我想处理浏览器缓存(indexedDB)和S3之间的同步。因此,我利用了时间戳。
棘手的部分是,我的浏览器应用程序需要知道S3中文件的确切“最新更新”时间戳,以将其与本地缓存的文件一起存储(因此,我可以通过时间戳来感知一方或另一方的差异)不相等)。
目前,我最好的解决方案是:
// Upload of file
var upload = new AWS.S3.ManagedUpload({
params: {
// some params
}
});
await upload.promise();
// Call of listObjectsV2
var s3Objects = await s3.listObjectsV2(params).promise();
// get "LastModified" value from listObjectsV2
我真的不喜欢此解决方案,因为它需要额外的“ listObjectsV2”调用,这需要时间并且由AWS负责。
从头开始,我希望上传的返回参数中应该有一些可以利用的东西。但是我什么也找不到。我想念什么?
解决方法
查看适用于JavaScript的AWS开发工具包的文档,我认为您根本不会丢失任何东西:https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3/ManagedUpload.html#promise-property
上传成功后,根本就不会返回任何日期时间字段。
(我自己一直在搜索类似这样的内容,仅用于NET。最后,我不得不在上传后开始发送元数据请求。)
也许可以听S3事件:https://aws.amazon.com/blogs/aws/s3-event-notification/