为正在上传到AWS S3的图像设置过期和caching控制标头

我正在使用名为node-s3-client的npm包,它是aws-sdk for Node.js的高级包装,将本地项目目录上传到S3存储桶。

使用该包,我将一些元数据传递给我的文件,即ExpiresCache-Control键值对。 我正在上传整个由HTML,JS,CSS,JPEG文件组成的目录。 但是,当我检查我的S3存储桶时,我设置的标题只适用于JS和CSS文件,这些标题不适用于图像。

我已经通过包和aws-sdk的文档,但我似乎无法find是什么原因导致有select地将我的元数据应用于某些文件而不适用于其他文件的问题。

这是我的configuration对象:

 const s3 = require('node-s3-client') const s3Config= { localDir: './dist', deleteRemoved: false, s3Params: { Bucket: 'cdn', Prefix: 'dist/', Metadata: { 'Cache-Control': 'max-age=31536000', 'Expires': oneYearLater(new Date()) } } } const client = s3.createClient({ s3Options: { accessKeyId: KEY_ID, secretAccessKey: ACCESS_KEY, signatureVersion: 'v4', region: 'us-east-2', s3DisableBodySigning: true } }) client.uploadDir(s3Config) 

什么可能导致这个问题?

我想你有一个问题,你如何设置你的对象params上传。 尝试:

 const s3Config= { localDir: './dist', deleteRemoved: false, s3Params: { Bucket: 'cdn', Prefix: 'dist/', CacheControl: 'max-age=31536000', Expires: oneYearLater(new Date()) } }