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