我在chrome上遇到问题,其中chrome s AWS s3正在缓存我的请求并返回相同的结果。当我以隐身模式或其他浏览器(FireFox)运行时,它可以正常工作。
有点背景,我有一个存储区,所有用户都在其中存储他们的化身,文件是根据其ID命名的。当用户想要更改其头像时,文件将被覆盖。
我已经针对节点使用AWS s3 SDK v ^2.268.1
进行了很多尝试。
const params = { Bucket: 'avatars', Key: fileName, ResponseCacheControl: "no-cache" };
s3.getObject(params, (err, data) => {
if (err) {
rej(err);
} else {
const str = data.Body.reduce((a, b) => (a + String.fromCharCode(b)), '');
const avatar = 'data:image/jpeg;base64,' + btoa(str).replace(/.{76}(?=.)/g,'$&\n');
vcard.avatar = avatar;
res();
}
});
导致403的我也尝试过Private
,Public
和No-store
的所有结果都是相同的。如果我完全删除ResponseCacheControl
,它只会返回没有错误的消息。
Chrome + CORS + cache - requesting same file from two different origins https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getObject-property
是我使用的参考,并且尝试了多个参数都没有用。 我的下一步是尝试添加自定义URL参数,但还无法弄清楚该怎么做。