我无法为存储桶中的图像设置缓存控制最大年龄标头。这些图像实际上存储在firebase存储桶中,如果这有什么区别的话。
我可以成功上传一个图像,并在响应中接收文件对象。然后,我将文件的缓存控制最大年龄头设置为31536000,如下所示:
const gcloud = require('google-cloud');
const gcs = gcloud.storage({credentials: myCredentials});
const storageBucket = gcs.bucket(myConfig);
storageBucket.upload('path/to/image', {
public: true,
destination: storageBucket.file('storageBucketName/imageName.png')
} , (err, file, apiResponse) => {
file.setMetadata({
cacheControl: 'public, max-age=31536000'
});
});
当我访问公共url上的图像时(https://storage.googleapis.com/my-bucket-name.appspot.com/storageBucketName/imageName.png)cache control max age标头设置为3600,这是默认值。
奇怪的是,如果我通过超文本传输协议(http://storage.googleapis.com/my-bucket-name.appspot.com/storageBucketName/imageName.png)访问公共网址,缓存控制最大年龄头被设置为31536000,这是意料之中的。
我如何为https上的公共网址设置这个标题?谢谢!
如果有人感兴趣,我的问题是逗号和下一个值之间没有空格。
比如。
ref.updateMetadata({cacheControl: 'public,max-age=3600'});
行不通,
而:
ref.updateMetadata({cacheControl: 'public, max-age=3600'});
将
在这里找到了答案:
https://github.com/GoogleCloudPlatform/google-cloud-node/issues/1087
所以对于你的代码:
const gcloud = require('google-cloud');
const gcs = gcloud.storage({credentials: myCredentials});
const storageBucket = gcs.bucket(myConfig);
storageBucket.upload('path/to/image', {
public: true,
destination: storageBucket.file('storageBucketName/imageName.png')
metadata: {
cacheControl: 'public, max-age=14400'
}
} , (err, file, apiResponse) => {
});
或者我是怎么做的:
const cf = bucket.file(fn);
fs.createReadStream(path.join(topDir, fn))
.pipe(cf.createWriteStream({
predefinedAcl: 'publicRead',
metadata: {
contentType: mime.lookup(fn) || 'application/octet-stream',
cacheControl: 'public, max-age=315360000',
},
gzip: true
}))
.on('error', err => {
logErr(err);
resolve();
})
.on('finish', () => {
resolve();
});
背景: IIS 7 AspNet 3.5网络应用程序 Chrome开发工具列出了对web应用主页(aspx js css图像)的98个请求。在以下请求中,css/图像文件的状态代码为。没有缓存信息,浏览器每次都会询问服务器是否需要更新文件。OK. 在IIS 7中,我为缓存控制设置HTTP头,为“ressources”文件夹设置为6小时。在Chrome中,使用dev工具,我可以看到标题在响应中设置得
我已将服务器响应配置为包含
我正在尝试使用node。用于访问googleAPI的js客户端库(https://github.com/google/google-api-nodejs-client).我正在尝试使用谷歌云存储API插入bucket和object。我可以成功列出项目存储的存储桶。还可以从存储器中检索特定的存储桶。但无法插入桶或对象。 执行API调用的代码: 以下是日志中显示的内容: 任何指示什么是“必需的”,如何
我正在向gcs写入一些字节,并希望使用谷歌提供的JSON API包装器,但有一个超时。目前我有: 有没有一种简单的方法可以向、或?
我有一个谷歌云存储(GCS)桶标记为公共。我使用v4签名的URL将图像上传到这个公共桶。我可以通过HTTP头看到GCS缓存图像长达1小时。但是,当我上传相同图像的较新版本(具有相同的文件名)时,GCS不会使缓存无效,仍然为这些图像的较旧版本服务。当这些映像的较新版本上载到GCS时,如何确保缓存无效?必须使用v4签名的URL。
我有一个Spring Boot(1.5.8)webapp,与其他几个Spring Boot服务,都部署到AWS。webapp模块部署到由弹性负载均衡器管理的两个EC2实例。整个系统是由库伯内特斯精心策划的。 我正试图设置会话cookie max age来解决一个问题,正如这里所建议的:成功身份验证后的Spring SAML无尽重定向循环 当我使用Docker Compose在本地机器上运行时,我所