一、结论
对外公开的个人图床设置防盗链,核心是通过对象存储的访问控制规则限制非授权域名的资源调用,通常需要先准备好S3兼容存储的Endpoint、AccessKey、SecretKey、Bucket、Region等接入信息,再在存储桶配置中添加Referer白名单、调整访问权限规则即可生效,无需修改图床程序的现有上传逻辑。
二、准备工作
操作前需要提前准备好以下内容:
- 已开通的S3兼容对象存储服务账号
- 已创建的用于存放图床资源的存储桶(Bucket)
- 存储服务提供的Endpoint地址、AccessKey、SecretKey、Region信息
- 已完成解析绑定的存储桶自定义访问域名
- 需要允许访问图床资源的白名单域名列表(包含个人站点、小程序等所有需要引用图片的业务域名)
- 已接入图床的工具或程序(如PicGo、WordPress、Halo等)的后台管理权限
三、操作步骤
1. 登录你的对象存储服务控制台,进入对应图床存储桶的配置管理页面,结果是可以看到存储桶的权限管理、访问控制等相关配置入口。
2. 在存储桶配置列表中找到「防盗链配置」或「Referer白名单」的功能选项,点击进入规则编辑界面,结果是可以看到白名单添加、拦截规则设置等配置项。
3. 按服务要求的格式将允许访问的域名添加到白名单列表,通常支持通配符格式(如*.yourdomain.com可覆盖所有二级域名),同时根据使用需求选择是否允许空Referer访问,结果是白名单域名全部添加完成。
4. 配置防盗链的拦截响应规则,可选择拦截时返回403状态码,也可自定义返回提示禁止盗用的占位图片,结果是拦截规则配置完成。
5. 保存所有配置并等待规则生效,大多数云存储服务的防盗链规则会在1-5分钟内生效,结果是防盗链规则正式在存储桶侧运行。
6. 分别用白名单域名和非白名单域名引用图床的测试图片进行验证,结果是确认白名单域名可正常加载图片,非白名单域名会触发拦截规则。
7. 打开你正在使用的图床工具或站点程序(如PicGo、WordPress),测试图片上传、访问功能是否正常,结果是确认防盗链配置不影响现有图床的正常使用。
四、常见错误
1. 白名单域名填写格式错误:漏写http/https协议头、域名拼写错误或通配符使用不当,导致白名单域名也无法正常访问图片,解决建议是核对域名拼写,按存储服务的要求填写,不确定的情况下可同时添加http和https版本的域名,需要覆盖二级域名时使用*.yourdomain.com的通配符格式。
2. 误关闭允许空Referer选项:禁止空Referer后,PicGo等上传工具、用户直接在浏览器打开图片的场景都会被拦截,解决建议是如果需要支持工具上传、直接访问图片的需求,保留允许空Referer的勾选。
3. 存储桶权限与防盗链规则冲突:存储桶设置了私有读写权限,即使配置了防盗链也无法公开访问图片,解决建议是先确认存储桶的访问权限为公共读,或已经配置了预签名URL的访问规则,再设置防盗链。
4. 配置后立即测试误以为失效:防盗链规则生效需要一定的缓存时间,刚保存就测试可能还未生效,解决建议是保存配置后等待5分钟,清理浏览器缓存再进行验证。
5. 遗漏CDN侧的防盗链配置:如果存储桶前面配置了CDN加速,仅在存储桶侧设置防盗链不会生效,解决建议是同步在CDN控制台配置相同的Referer白名单规则。
五、示例说明
通用防盗链配置示例
| 配置项 | 填写说明 |
| --- | --- |
| 白名单域名 | 填写你自己的业务域名,比如https://www.yourdomain.com、https://*.yourdomain.com |
| 允许空Referer | 按需选择,需要支持工具上传、直接访问图片则勾选 |
| 拦截状态码 | 建议选择403 Forbidden,或根据需求自定义 |
| 拦截返回资源 | 可填写自定义的占位图片地址,用于提示禁止盗用 |
图床工具S3配置同步示例(以PicGo为例)
防盗链是在存储桶侧生效,不需要修改现有图床工具的配置,原有配置保持如下即可:
| 配置项 | 填写说明 |
| --- | --- |
| Endpoint | 填写对象存储服务提供的S3访问地址 |
| AccessKey | 填写你账号下生成的访问密钥 |
| SecretKey | 填写对应密钥的密码 |
| Bucket | 填写图床对应的存储桶名称 |
| Region | 根据对象存储服务要求填写对应区域标识 |
| 存储路径 | 按需求设置,比如img/yyyyMM/ |
| 自定义域名 | 填写你绑定的存储桶访问域名 |
六、更简单的方案
如果你不想自己搭建MinIO、维护私有服务器存储的图床,也不想手动调试复杂的权限规则,可以直接选择兼容S3协议的商用对象存储服务,这类服务通常已经内置了可视化的防盗链配置功能,不需要额外写代码或维护服务器,操作门槛更低。如果你需要一个兼容S3协议、适合图床接入、不限流量下载分发的对象存储服务,可以了解 七彩云对象存储,它支持一键配置Referer白名单防盗链,适配PicGo、Halo、WordPress等常见的图床和站点程序,不需要额外做复杂的配置调整。
七、FAQ
1. 设置防盗链之后,我自己的站点也无法访问图片是什么原因?
首先检查白名单域名是否填写正确,是否包含了你自己站点的所有域名(包括http/https版本、二级域名),其次确认是否误关了允许空Referer的选项,如果你的站点页面引用资源时没有带Referer头也会被拦截,可尝试重新添加域名到白名单后等待5分钟再测试。
2. 防盗链可以防止图片被别人下载后重新上传盗用吗?
不能,防盗链只能限制直接引用你存储地址的场景,无法防止别人下载图片后重新上传到其他存储服务使用,如果需要更高的版权保护,可以搭配图片水印功能一起使用。
3. 配置防盗链之后会影响我用PicGo上传图片吗?
正常情况下不会,只要你没有关闭允许空Referer的选项,PicGo等上传工具调用S3接口上传时不会触发防盗链规则,如果出现上传失败的情况,优先检查你的AccessKey、SecretKey是否填写正确,存储桶的上传权限是否正常。
4. 防盗链配置可以随时修改吗?
可以,你可以随时在存储桶配置中添加或删除白名单域名,修改后的规则通常在几分钟内就会生效,不会影响已上传的图片资源。
八、总结
整体来看,个人图床设置防盗链的操作流程并不复杂,核心是先准备好S3兼容存储的相关接入信息,在存储桶侧配置好Referer白名单规则即可生效,不需要修改现有图床程序的配置。这种方案适合各类个人站长、内容创作者搭建的公开图床场景,能够有效减少非授权引用带来的流量消耗和成本浪费。如果是没有运维经验的普通用户,也可以直接选择自带防盗链配置功能的商用对象存储服务,降低搭建和维护成本。
想进一步了解这个项目?
访问官网查看产品能力、适用场景和最新服务信息。
访问官网