【问题标题】:Firebase Storage cacheControl headers not sentFirebase 存储 cacheControl 标头未发送
【发布时间】:2021-03-15 19:57:00
【问题描述】:

我正在使用云功能调整图像大小,并最终将其上传到我的 firebase 存储桶,如下所示:

// Upload to GCS
return bucket.upload(thumbPath, {
  destination: join(bucketDir, thumbName),
    metadata: {
      metadata: {
        firebaseStorageDownloadTokens: 'token',
        cacheControl: "public, max-age=1209600"
      }
    }
});

一切正常,图像上传到相应的存储桶,令牌有效,我还可以在存储控制台中看到正确的元数据cacheControl: "public, max-age=1209600"

尽管如此,当我在浏览器中加载图像时,我仍然会得到默认的 firebase 缓存标头 cache-control: private, max-age=0

在第一次下载之后,我确实为所有下载获得了 Status Code: 304,这是对缓存资源的隐式重定向,但在我开始推送 cachedControl 元数据之前,默认情况下已经发生了这种情况。

问题是,我怎样才能设法取回正确的 cacheControl 标头?

【问题讨论】:

    标签: firebase firebase-storage


    【解决方案1】:

    所以,又花了一个小时,我发现cacheControl 项目必须在第一个metadata 对象级别内,而不是像firebaseStorageDownloadTokens 这样的嵌套对象级别。

    工作代码:

    // Upload to GCS
    return bucket.upload(thumbPath, {
      destination: join(bucketDir, thumbName),
        metadata: {
          cacheControl: "public, max-age=1209600",
          metadata: {
            firebaseStorageDownloadTokens: 'token'
          }
        }
    });
    

    【讨论】:

    • 我试过这个,但它最初对我不起作用。我必须在-prod 中运行我的(角度)应用程序,然后实现所有缓存控制标头。
    猜你喜欢
    • 2020-05-26
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 2017-04-04
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多