我正在使用一个名为 node-s3-client
的 npm 包,它是 Node.js 的 aws-sdk
的高级包装器,用于上传一个本地项目目录到 S3 存储桶。
使用该包,我将一些元数据传递到我的文件,即 Expires
和 Cache-Control
的键值对。我正在上传一个包含 HTML、JS、CSS、JPEG 文件的整个目录。但是,当我检查我的 S3 存储桶时,我设置的 header 仅适用于 JS 和 CSS 文件,这些 header 不适用于图像。
我已经浏览了包和 aws-sdk 的文档,但我似乎无法找到导致选择性地将我的元数据应用于某些文件而不应用于其他文件的问题的原因。
这是我的配置对象:
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)
可能是什么导致了这个问题?
最佳答案
我认为您对如何设置要上传的对象的参数有疑问。尝试:
const s3Config= {
localDir: './dist',
deleteRemoved: false,
s3Params: {
Bucket: 'cdn',
Prefix: 'dist/',
CacheControl: 'max-age=31536000',
Expires: oneYearLater(new Date())
}
}
关于javascript - 为上传到 AWS S3 的图像设置 Expires 和 Cache-Control header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45845066/