麒麟臂不服不行

# 蓝月登峰
SLOW MAKES BETTER
  1. 首页
  2. 随笔
  3. 正文

wordpress使用云服务实现图片上传自动添加水印

2023年12月18日 1637点热度 0人点赞 0条评论

好久没有更新blog,一是因为最近工作有点忙,二也是研究wordpress的上传功能花了点时间。下面简单说下上传图片时实现自动添加水印的流程。

1. 对象存储

原版的wordpress上传图片会保存在服务器本地,用户访问图片时也是直接访问我们的wordpress服务器,无论从服务分离还是性能要求的角度上来看这都是不太友好的。现代服务大多数都会使用单独的图片文件服务来管理上传的内容,比较流行就是对象存储(IaaS层服务),几乎所有云厂商都会提供这个(亚马逊的S3、阿里的OSS、腾讯的COS、华为的OBS等等),使用对象存储我们可以轻松的实现图片上云,并且配合cdn、图片瘦身等功能做到省流加速访问。

2.图片水印处理

图片上云后又衍生出了大量的处理需求,比如图片尺寸适配,图片大小压缩等等,我们这里单说一说图片水印功能。为了防止盗图,图片水印功能可以说是非常的流行,一般云厂商也都针对性的提供了2种处理方式:
1.同步下载时处理,即通过带访问参数的方式给图片添加水印
2.持久化处理,通常是异步触发,新生成一张带水印的图片保存在云平台上
这里我选择第二种方式实现水印处理(可以节约处理次数),具体流程如下

  1. 首先通过wordpress上传图片到云平台
  2. 使用sdk异步触发生成新水印图
  3. 轮询水印图生成成功后,删除原图

具体实现的代码

这里我以七牛云为例子,fork github上七牛kodo的workpress插件,在上面调整了一下
主要改动有一下几点

  1. 上传媒体文件时,增加了一个选项,是否自动添加水印
  2. kodo配置里增加了水印配置
  3. 新增了异步任务代码来生成水印

代码地址如下:
https://github.com/mysens/qiniu-kodo-wordpress


使用方式, wordprss媒体库新增是否选择水印的选项:

使用效果

水印样式可以在云服务上进行调整,后续也打算通过插件的方式支持,留做一个遗留吧

标签: 暂无
最后更新:2023年12月18日

mysens

Keep Code Simple

点赞
< 上一篇
订阅评论
提醒
guest

guest

0 评论
内联反馈
查看所有评论

mysens

Keep Code Simple

最新 热点 随机
最新 热点 随机
istio环境下mysql连接失败问题 常见的docker hub mirror镜像仓库 wordpress使用云服务实现图片上传自动添加水印 jdk8默认开启UseAdaptiveSizePolicy造成的fullgc CPU伪共享的浅析 docker + nginx + wordpress建站
istio环境下mysql连接失败问题
免费HTTPS证书申请 istio环境下mysql连接失败问题 CPU伪共享的浅析 为什么要用HTTPS? docker + nginx + wordpress建站 常见的docker hub mirror镜像仓库
标签聚合
证书 CA 非对称加密 安全 对称加密 建站 CPU HTTPS

COPYRIGHT © 2022 麒麟臂不服不行. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鄂ICP备18005036号

鄂公网安备 42010602004698号

wpDiscuz