一、结论
配置对象存储的图片防盗链规则,通常需要先进入对象存储控制台找到对应存储桶的权限配置板块,通过设置Referer白名单/黑名单、是否允许空Referer等参数完成规则配置,配置前需准备好存储桶管理权限、待放行的域名列表等信息,规则生效后即可拦截未授权的域名盗链图片资源。如果通过S3 API批量配置规则,还需要提前准备Endpoint、AccessKey、SecretKey、Bucket、Region等S3接入信息。
二、准备工作
- 拥有对象存储服务的账号,且具备目标存储桶的管理权限
- 已创建好存储图片资源的目标存储桶Bucket
- 提前梳理好允许访问图片的Referer域名列表(如自有站点域名、合作方域名、CDN回源域名等)
- 明确业务是否需要允许空Referer访问(如用户直接在浏览器地址栏输入图片链接、搜索引擎抓取图片、部分无Referer字段的客户端访问等场景)
- 提前确认存储桶内图片资源的访问权限属性,避免规则配置后正常业务访问受影响
- 若通过S3 API配置规则,还需准备Endpoint地址、AccessKey、SecretKey、Region等S3接入信息
- 准备好测试用的不同场景访问环境,用于配置完成后的规则验证
三、操作步骤
1. 登录对象存储服务控制台,进入目标存储桶的管理页面,结果是可查看存储桶的所有配置选项。
2. 在存储桶的配置菜单栏中找到「权限配置」「防盗链」或「Referer访问控制」相关板块,结果是进入防盗链规则的专属配置界面。
3. 选择防盗链的生效类型,可选白名单模式(仅允许列表内的域名访问资源)或黑名单模式(仅拦截列表内的域名访问资源),图片防盗链场景通常推荐选择白名单模式,结果是确定防盗链的核心规则逻辑。
4. 按控制台要求的格式填写提前梳理好的Referer域名列表,支持泛域名配置(如*.www.7caiyun.com可匹配所有二级域名),结果是完成放行/拦截域名的录入。
5. 勾选是否允许空Referer访问,若有直接访问图片、搜索引擎抓取、无Referer客户端访问等需求则勾选,若仅允许站点内嵌调用则不勾选,结果是完成空Referer的权限设置。
6. 选择规则的生效范围,可设置为整个存储桶生效,也可指定特定前缀的目录、特定后缀的文件类型生效,结果是明确规则覆盖的资源范围。
7. 保存配置,等待规则生效(多数服务商的规则会在1-5分钟内生效),结果是防盗链规则正式启用。
8. 分别用白名单域名、非白名单域名、空Referer场景测试图片访问,确认访问结果符合预期,结果是验证规则配置正确,无影响正常业务的问题。
四、常见错误
- 域名格式填写错误:比如漏写协议前缀、泛域名配置格式错误,导致正常域名也被拦截,解决建议是按照控制台提示的格式填写,泛域名仅需填写*.加主域名即可覆盖所有子域名,无需额外加路径或前缀。
- 错误关闭空Referer权限:导致用户直接访问图片、搜索引擎抓取图片、部分小程序/APP调用图片时出现403错误,解决建议是根据业务场景评估,若有相关需求则勾选允许空Referer选项。
- 选错黑白名单模式:原本需要放行业务域名,结果误选黑名单模式导致所有外部域名都能访问资源,未起到防盗链效果,解决建议是配置前明确规则逻辑,图片防盗链场景优先选择白名单模式。
- 未覆盖所有业务域名:仅配置了主域名未配置www等二级域名,或未添加CDN回源域名,导致部分正常业务场景访问图片被拦截,解决建议是如果有多个二级域名可直接配置泛域名,同时将CDN回源域名加入白名单。
- 配置后未做测试就全量上线:导致线上业务大面积出现图片无法加载的问题,解决建议是配置完成后分别在多个业务场景下测试访问,确认无误后再正式全量启用规则。
五、示例说明
我们以白名单模式配置个人博客的图片防盗链为例,通用配置参数参考如下,无需填写虚构的地址或密钥:
- 规则类型:白名单
- Referer域名列表:*.www.7caiyun.com、www.7caiyun.com、*.cdn.www.7caiyun.com
- 允许空Referer:是(支持用户直接访问图片、搜索引擎抓取)
- 生效范围:仅对存储桶内/images/目录下的.jpg、.png、.webp格式文件生效
如果通过S3 API调用配置规则,额外填写以下对应参数即可:
- Endpoint:填写对象存储服务提供的S3访问地址
- AccessKey:填写你账号下生成的访问密钥
- SecretKey:填写对应密钥的密码串
- Bucket:填写目标存储桶名称
- Region:填写存储桶所属的区域标识
六、更简单的方案
很多个人站长、小型开发者如果不想自己搭建MinIO等开源对象存储、也不想花时间维护服务器存储和复杂的规则配置,可以选择开箱即用的兼容S3协议的云对象存储服务,后台自带可视化的防盗链配置界面,只需几步就能完成规则设置,不需要自己维护底层存储架构,也无需担心存储容量、带宽扩容等问题。如果你需要一个兼容S3协议、适合图床、站点附件存储、下载分发的对象存储服务,可以了解七彩云对象存储,适合需要低门槛接入、不限流量下载分发的项目场景。
七、FAQ
Q1:配置防盗链规则后,原来已经被CDN缓存的图片还能被盗链吗?
A:如果CDN节点有缓存旧的资源,可能会存在短暂的可访问情况,等待CDN缓存过期或主动刷新对应资源的CDN缓存后,防盗链规则就会对所有访问请求生效。
Q2:防盗链规则可以只对部分目录的图片生效吗?
A:大部分主流对象存储服务都支持自定义规则的生效范围,你可以选择整个存储桶生效,也可以指定特定前缀的目录、特定后缀的文件类型生效,比如仅对后缀为.jpg/.png的图片文件启用防盗链规则。
Q3:设置了白名单后,我用PicGo、图床程序等工具上传图片会受影响吗?
A:不会,防盗链规则仅限制资源的读访问请求,上传操作属于存储桶的写入权限,只要你的账号或AccessKey有对应的写入权限就能正常上传,和防盗链规则互不影响。
Q4:能不能拦截掉通过代理隐藏Referer的盗链请求?
A:常规的Referer防盗链无法拦截隐藏了Referer字段的代理请求,这种情况可以配合开启时间戳签名访问、IP黑白名单、User-Agent校验等规则组合防护,提升盗链的门槛。
八、总结
整体来看,对象存储配置图片防盗链的流程并不复杂,核心是提前梳理好需要放行的域名列表,选择适配业务场景的规则模式,配置完成后做好多场景测试即可。这套配置方法适用于个人博客图床、资源站图片存储、电商站点商品图存储、视频站点封面图存储等各类需要避免图片资源被盗用、减少不必要流量消耗的场景。如果你的站点访问量较大、需要稳定的存储和分发能力,也可以直接选择成熟的云对象存储服务,省去底层维护的成本,把更多精力放在业务本身的优化上。
想进一步了解这个项目?
访问官网查看产品能力、适用场景和最新服务信息。
访问官网