AWS s3 缓存图像 url
AWS s3 caching images by url
我的应用程序的功能之一是将汽车图像存储在 s3 存储桶中。图片按 url 分类,例如:https://{bucketName}.s3.amazonaws.com/{vin}/{photoCategory}.jpg
https://{bucketName}.s3.amazonaws.com/1B3EL46X95N553721/Full_Instrument_Cluster.jpg
用户需要能够在给定 url 更新图像。在测试此功能的实现时,我已经能够确认图像实际上已在 s3 中被替换,但是即使在刷新页面后,此更改也不会显示在浏览器中。我唯一的猜测是因为 url 没有改变,所以浏览器缓存了来自 s3 的图像。我想知道是否有某种方法可以解决此问题,以防止浏览器缓存图像
const uploadParams = {
Bucket: "bucketName",
Key: "filePath",
Body: fileStream,
Metadata: {
Cache: "no-cache"
}
};
const s3Data = await client.send(new PutObjectCommand(uploadParams));
如果您的设置中没有任何其他缓存层(CDN、服务工作者等),您可以将 S3 对象的 Cache-Control
设置为 no-cahe
,例如以下方式
转到对象 -> Select Edit Metadata
-> 添加 header/metadata
我的应用程序的功能之一是将汽车图像存储在 s3 存储桶中。图片按 url 分类,例如:https://{bucketName}.s3.amazonaws.com/{vin}/{photoCategory}.jpg
https://{bucketName}.s3.amazonaws.com/1B3EL46X95N553721/Full_Instrument_Cluster.jpg
用户需要能够在给定 url 更新图像。在测试此功能的实现时,我已经能够确认图像实际上已在 s3 中被替换,但是即使在刷新页面后,此更改也不会显示在浏览器中。我唯一的猜测是因为 url 没有改变,所以浏览器缓存了来自 s3 的图像。我想知道是否有某种方法可以解决此问题,以防止浏览器缓存图像
const uploadParams = {
Bucket: "bucketName",
Key: "filePath",
Body: fileStream,
Metadata: {
Cache: "no-cache"
}
};
const s3Data = await client.send(new PutObjectCommand(uploadParams));
如果您的设置中没有任何其他缓存层(CDN、服务工作者等),您可以将 S3 对象的 Cache-Control
设置为 no-cahe
,例如以下方式
转到对象 -> Select Edit Metadata
-> 添加 header/metadata