Backblaze B2 存储桶设置缓存教程(Cache-Control)
wxk1991 Lv3

Backblaze B2 存储桶设置缓存教程(Cache-Control)

很多人在使用:

1
Backblaze B2

作为:

  • 图片床
  • 视频存储
  • CDN 源站
  • 静态资源服务器

时,会发现:

1
资源访问速度不稳定

或者:

1
浏览器每次都会重新请求资源

这时候:

1
就需要配置缓存(Cache-Control)

本篇文章教你:

  • 如何给 B2 存储桶设置缓存
  • 如何配置 Cache-Control
  • 如何让静态资源缓存一年
  • 如何减少服务器流量消耗

什么是 Backblaze B2?

Backblaze B2 是国外非常热门的:

1
对象存储服务

类似于:

  • 阿里云 OSS
  • 腾讯云 COS
  • AWS S3

优点:

  • 价格便宜
  • 流量成本低
  • 支持 S3 API
  • 可搭配 CDN
  • 非常适合静态资源

很多网站会用它:

  • 存储图片
  • 存储视频
  • 存储 CSS / JS
  • 作为资源站

为什么要设置缓存?

如果不设置缓存:

1
浏览器每次都会重新请求资源

例如:

  • 图片
  • JS
  • CSS
  • 视频封面

都会重复请求。

这样会导致:

  • 加载变慢
  • 流量增加
  • 带宽浪费
  • CDN 命中率降低

Cache-Control 是什么?

HTTP 中:

1
Cache-Control

是缓存控制头。

例如:

1
Cache-Control: public, max-age=31536000

含义:

参数 作用
public 允许浏览器和 CDN 缓存
max-age 缓存时间(秒)

31536000 是什么意思?

1
31536000 秒

等于:

1
365 天

也就是:

1
缓存一年

非常适合:

  • 图片
  • 视频
  • CSS
  • JS
  • 静态资源

设置 B2 缓存教程


第一步:登录 Backblaze

官网登录:

:contentReference[oaicite:0]{index=0}

进入后台。


第二步:进入 Buckets(存储桶)

登录后:

找到:

1
Buckets

或者:

1
存储桶

然后:

1
点击你创建的存储桶

第三步:点击 Bucket Settings(桶设定)

进入存储桶后:

找到:

1
Bucket Settings

中文一般显示:

1
桶设定

第四步:设置 Bucket Info(桶信息)

在:

1
Bucket Info

或者:

1
桶信息

中输入:

1
2
3
{
"cache-control":"public, max-age=31536000"
}

配置详解

public

1
允许所有缓存节点缓存

包括:

  • 浏览器
  • CDN
  • Cloudflare
  • Nginx 缓存

max-age=31536000

表示:

1
缓存一年

单位:

1


为什么推荐缓存一年?

因为:

1
静态资源一般不会频繁修改

例如:

  • logo
  • 图片
  • 视频封面
  • JS 文件
  • CSS 文件

缓存一年:

  • 可以减少带宽消耗
  • 提高加载速度
  • 提高 CDN 命中率

推荐搭配文件 Hash

建议:

1
缓存一年 + 文件 Hash

例如:

1
2
app.a1b2c3.js
logo.x8y9z.png

这样即使更新文件:

1
文件名也会变化

浏览器会重新请求。

这是现代前端:

1
最推荐的缓存方案

不建议缓存一年的情况

以下资源:

1
不要缓存太久

例如:

  • API 返回数据
  • 用户头像(频繁变化)
  • 首页 JSON
  • 实时数据

否则:

1
用户可能看到旧数据

如何验证缓存是否生效?

浏览器按:

1
F12

打开:

1
Network

找到资源后查看:

1
Response Headers

如果看到:

1
cache-control: public, max-age=31536000

说明已经生效。


Cloudflare 搭配建议

如果你使用:

1
Cloudflare + B2

推荐:

  • B2 设置 Cache-Control
  • Cloudflare 开启 CDN 缓存
  • 开启 Brotli
  • 开启 HTTP/3

效果会非常好。


常见问题

1. 修改后为什么没生效?

原因可能:

  • CDN 旧缓存未刷新
  • 浏览器已有缓存
  • Cloudflare 未清缓存

解决:

1
清除 CDN 缓存

或者:

1
Ctrl + F5 强制刷新

2. 会不会导致更新后用户看不到新资源?

会。

所以:

1
一定要使用文件 Hash

例如:

1
main.a1b2.js

而不是:

1
main.js

推荐缓存策略

资源类型 推荐缓存
图片 1 年
CSS 1 年
JS 1 年
视频封面 1 年
API 数据 不缓存
HTML 页面 低缓存

总结

Backblaze B2 设置缓存非常简单:

进入:

1
桶设定(Bucket Settings)

然后:

1
桶信息(Bucket Info)

输入:

1
2
3
{
"cache-control":"public, max-age=31536000"
}

即可实现:

1
缓存一年

非常适合:

  • 图片站
  • 视频站
  • 博客
  • CDN 源站
  • 静态资源站
  • Hexo / Vite / Vue 项目