Backblaze B2 存储桶设置缓存教程(Cache-Control)
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 | { |
配置详解
public
1 | 允许所有缓存节点缓存 |
包括:
- 浏览器
- CDN
- Cloudflare
- Nginx 缓存
max-age=31536000
表示:
1 | 缓存一年 |
单位:
1 | 秒 |
为什么推荐缓存一年?
因为:
1 | 静态资源一般不会频繁修改 |
例如:
- logo
- 图片
- 视频封面
- JS 文件
- CSS 文件
缓存一年:
- 可以减少带宽消耗
- 提高加载速度
- 提高 CDN 命中率
推荐搭配文件 Hash
建议:
1 | 缓存一年 + 文件 Hash |
例如:
1 | app.a1b2c3.js |
这样即使更新文件:
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 | { |
即可实现:
1 | 缓存一年 |
非常适合:
- 图片站
- 视频站
- 博客
- CDN 源站
- 静态资源站
- Hexo / Vite / Vue 项目