当前位置: 首页 > ai >正文

阿里云OSS+CDN自动添加文章图片水印配置指南

文章目录

        • 一、环境准备
        • 二、OSS水印样式配置
        • 三、CDN关键配置
        • 四、Handsome主题自动化配置
        • 五、水印效果验证
        • 六、常见问题排查

一、环境准备
  1. 资源清单
    • 阿里云OSS Bucket(绑定自定义域名 static.example.com
    • 阿里云CDN加速域名,回源为Bucket的域名
二、OSS水印样式配置
  1. 创建图片处理样式

    • 登录 OSS控制台 → 目标Bucket → 数据处理图片处理样式管理
    • 新建样式,我的规则名称填的是shuiyin
  2. 权限验证

    • 确保OSS Bucket为公共读或已配置CDN鉴权回源。

三、CDN关键配置
  1. 保留URL参数

    • 进入 CDN控制台 → 目标域名 static.example.com缓存配置
    • 选择 保留所有参数,确保 x-oss-process 传递到OSS。
    • 这里默认就可以,不用改
  2. 刷新缓存

    • 刷新预热 中提交目录刷新:
      https://static.example.com/usr/uploads/
      
四、Handsome主题自动化配置
  1. 开启镜像存储

    • 进入主题后台 → 外观设置图片设置本地图片云存储(镜像)加速
    • 填写OSS域名:https://static.example.com
  2. 追加水印参数(仅文章图片)

    • 在同一页面找到 云存储文章图片处理后缀,输入:

      ?x-oss-process=style/shuiyin
      

    • 效果示例

      原始路径:/usr/uploads/2024/article.jpg  
      转换后:https://static.example.com/usr/uploads/2024/article.jpg?x-oss-process=style/shuiyin
      
    • 很可惜,第二步这个方法行不通,我找了好几个小时的bug才解决,可能是这个后缀处理没有适配阿里云

  3. 在AliOssForTypecho插件中设置

    • 这个办法亲测可以
    • 在插件中设置自定义后缀
  4. 自动排除相册图片水印

    • 若把相册图片路径改为 /usr/uploads/gallery/,在主题的 functions.php 中添加以下代码:
      function apply_oss_watermark($content) {// 匹配非相册图片$pattern = '/https?:\/\/static\.example\.com\/((?!usr\/uploads\/gallery\/).+?\.(jpg|png|webp))/i';$replacement = '$1?x-oss-process=style/shuiyin';return preg_replace($pattern, $replacement, $content);
      }
      add_filter('content', 'apply_oss_watermark');
      
    • 此代码会跳过 /usr/uploads/gallery/ 路径的图片。
  5. 手动排除相册图片水印

五、水印效果验证
  1. 普通图片验证

    • 访问文章页面,右键检查图片URL是否包含 ?x-oss-process=style/shuiyin
    • 使用命令行工具测试:
      curl -I "https://static.example/usr/uploads/article.jpg?x-oss-process=style/shuiyin"
      
  2. 相册图片验证

    • 访问相册页面,检查图片URL是否水印参数,例如:
      https://static.example.com/usr/uploads/gallery/photo.jpg
      
六、常见问题排查
  1. 水印不显示

    • 原因1:CDN未保留参数 → 检查缓存键配置是否为“保留所有参数”。
    • 原因2:OSS样式未生效 → 通过OSS控制台「样式管理」预览测试。
    • 原因3:正则匹配错误 → 检查代码中相册路径排除逻辑。
  2. CDN缓存异常

    • 手动刷新缓存 → CDN控制台 → 刷新预热 → 提交图片URL或目录。
    • 检查响应头 X-Cache: MISS 确认回源状态。

通过本教程,你的博客将实现文章图片自动添加水印,同时保持相册图片原图效果。


作者:xuan
个人博客:https://blog.ybyq.wang
欢迎访问我的博客,获取更多技术文章和教程。

http://www.xdnf.cn/news/5095.html

相关文章:

  • 第五天 车载系统安全(入侵检测、OTA安全) 数据加密(TLS/SSL、国密算法)
  • Kubernetes生产实战(十四):Secret高级使用模式与安全实践指南
  • 解决mybatisplus主键无法自增的问题
  • uniapp-商城-50-后台 商家信息
  • 如何用AWS Lambda构建无服务器解决方案:实战经验与场景解析
  • 第十八节:图像梯度与边缘检测-Scharr 算子
  • OpenLayers 精确经过三个点的曲线绘制
  • opencv处理图像(二)
  • 抖音视频去水印怎么操作
  • Taro 编译不平不同平台小程序
  • 1.2.2.1.4 数据安全发展技术发展历程:高级公钥加密方案——同态加密
  • Java数据结构——二叉树
  • 进程间通信--管道【Linux操作系统】
  • Maven 插件配置分层架构深度解析
  • 滚珠丝杆在工作中损耗会影响什么?
  • 【计算机视觉】3DDFA_V2中表情与姿态解耦及多任务平衡机制深度解析
  • Android Compose 框架物理动画之捕捉动画深入剖析(29)
  • 封装 RabbitMQ 消息代理交互的功能
  • mac u盘重装mac10.15Catalina系统
  • 1.短信登录
  • 数据库故障排查全攻略:从实战案例到体系化解决方案
  • expo多网络请求设定。
  • Jmeter中的BeanShell如何使用?
  • MySQL 从入门到精通(三):日志管理详解 —— 从排错到恢复的核心利器
  • 01背包类问题
  • 基于大模型与异步技术的股票分析系统实现
  • 在 Flink + Kafka 实时数仓中,如何确保端到端的 Exactly-Once
  • Stable Diffusion进阶之Controlnet插件使用
  • python连接sqllite数据库工具类
  • 二维旋转矩阵:让图形动起来的数学魔法 ✨