快来把wordpress图片放到免费的cloudflare R2上去

网站一直是用的wordpress,做了几年uploads下的图片已经大到了几十GB单位,VPS也一路升级,吃不消啊吃不消。
一直在想有什么办法能解决下这一大堆图片,网站逛了一圈发现cloudflare的R2有10G免费空间,而且本来就用的他家的CDN,这样一来是不是会更顺滑呢?
说干就干,发现R2也是用的和亚马逊S3的标准方案,而且S3家有一个叫S3 Uploads的WP插件可直接用,并且官方的仓库里也有大佬写出了具体配置办法,那就照葫芦画瓢了。
结果由于网上查到的几个教程和方案都没有写明其中两处重要参数的作用,导致绕了一点弯路,一直没有把原图片地址和上传R2后的图片地址对应上,下面我就具体写下配置过程。

1.首先在R2上建立你自己的存储桶,并绑定你的域名,通过工具把网站图片全部同步到R2上,可以用rclone或WP插件,我这里直接用rclone来同步,如果图片多的话这个时间还是蛮久的,具体怎么使用rclone来连接远程桶也就是R2这里就不说了网上很多教程,不过同步到R2上的具体什么文件夹路径可以看下我后面关于S3 Uploads的配置说明再开始同步,否者如果等你同步完所有文件才发现路径不对需要重新调整的时候会发现修改一个路径和重新同步一次一样漫长。。。。

2.然后安装S3 Uploads插件,官方有两种方式安装,通过composer自动安装和手动下载安装,具体可以参考官方链接https://github.com/humanmade/S3-Uploads
我选择第二种手动安装直接下载官方releases的最新版后上传到wp插件目录解压缩。

3.插件安装正确后就能在wp的后台看到S3 Uploads插件了,但启动前还需要做两个配置。

4.打开wp的wp-config.php文件添加如下代码:

define("S3_UPLOADS_ENDPOINT", "https://<Cloudflare account ID>.r2.cloudflarestorage.com");
define("S3_UPLOADS_BUCKET", "<R2 bucket Name>");
define("S3_UPLOADS_BUCKET_URL", "<R2 bucket public url or domain>");
define("S3_UPLOADS_REGION", "auto");
define("S3_UPLOADS_KEY", "<R2 access key ID>");
define("S3_UPLOADS_SECRET", "<R2 secret access key>");

这里对每行参数做个说明:

S3_UPLOADS_ENDPOINT是指R2的链接地址,这个在你的R2中打开一个存储通中的设置里能看到有个“S3 API”就是这个了,但注意只写到.com这里后面的存储桶名字不要加进去。

S3_UPLOADS_BUCKET就是你网站要连接的存储桶名字,但这里可以加子目录,比如写成“存储桶名字/wp-content”这样。

S3_UPLOADS_BUCKET_URL这个参数指的是你图片以后链接到R2后的地址类似"https://img.主域名.com/wp-content",这里是可以填子目录的,这里就对应你前面存储桶的设置了,一定不能填错,否者图片就无法正常显示。

S3_UPLOADS_REGION这里是连接点,我这里就使用自动匹配。

S3_UPLOADS_KEY和S3_UPLOADS_SECRET是连接R2的令牌密钥信息。 可以在R2中的管理 R2 API 令牌界面中创建,记得创建时要选择对象读和写权限,其他选项默认就可以了。

5.接下来修改你当前使用的主题中的functions.php文件,添加代码:

function tw_s3_uploads_s3_client_params( $params ) {
    $params["endpoint"] = S3_UPLOADS_ENDPOINT;
    $params["use_path_style_endpoint"] = true;
    return $params;
}
add_filter( "s3_uploads_s3_client_params", "tw_s3_uploads_s3_client_params");

好了所有的设置都好了,但由于所有的文章地址都还是默认指向服务器上的图片地址的,所以如果后续要完全使用R2就需要批量修改数据库,把文章的图片地址批量修改为R2的地址,可以使用下面两句来实现:

UPDATE wp_posts SET post_content = REPLACE(post_content, 'www.域名.com/wp-content/uploads' , 'img.域名.com/wp-content/uploads')

UPDATE wp_posts SET guid = REPLACE(guid, 'www.域名.com/wp-content/uploads' ,'img.域名.com/wp-content/uploads');

或者如果你担心修改数据库发生问题,也可以使用插件media cloud来做批量修改,这款插件可以批量检查并修改你的地址,但注意里面的Upload Path的上传路径要和原文件夹保持一致,可以用这样的格式来设置/wp-content/uploads/@{date:Y/m}
还有一个参数Public Bucket URL设置成你的存储桶的子域名即可,后面的路径插件会自动根据你前面这个Upload Path设置都上传路径自动变更的。

经过以上的设置网站上的图片都已经指向了Cloudflare R2,具体性能怎么样自己去试试吧。
另外我在使用宝塔面板到时候发现会报一个权限错误,只要关闭防跨站攻击就可以了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/576178.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

零基础HTML教程(31)--HTML5多媒体

文章目录 1. 背景2. audio音频3. video视频4. audio与video常用属性5. 小结 1. 背景 在H5之前&#xff0c;我们要在网页上播放音频、视频&#xff0c;需要借助第三方插件。 这些插件里面最火的就是Flash了&#xff0c;使用它有几个问题&#xff1a; 首先要单独安装Flash&…

华为Pura 70系列,一种关于世界之美的可能

1874年&#xff0c;莫奈创作了《印象日出》的油画&#xff0c;在艺术界掀起了一场革命。当时的主流艺术&#xff0c;是追求细节写实&#xff0c;追求场面宏大的学院派。他们称莫奈等人是“印象派”&#xff0c;认为莫奈的画追求光影表达&#xff0c;追求描绘抽象的意境&#xf…

echarts地图叠加百度地图底板实现数据可视化

这里写自定义目录标题 echarts地图叠加百度地图实现数据可视化echarts地图叠加百度地图实现数据可视化 实现数据可视化时,个别情况下需要在地图上实现数据的可视化,echarts加载geojson数据可以实现以地图形式展示数据,例如分层设色或者鼠标hover展示指标值,但如果要将echa…

【Redis 开发】一人一单,超卖问题(悲观锁,乐观锁,分布式锁)

锁 悲观锁乐观锁第一种&#xff1a;版本号法第二种&#xff1a;CAS法实现乐观锁 悲观锁与乐观锁的比较 一人一单分布式锁Redis实现分布式锁 悲观锁 认为线程问题一定会发生&#xff0c;因此在操作数据库之前先获取锁&#xff0c;确保线程串行执行&#xff0c;例如Synchronized…

好的猫咪主食冻干到底该咋选?品控稳定的主食冻干推荐

315中国之声报道的河北省邢台市南和区某宠粮代工厂的“行业潜规则”&#xff0c;给各位铲屎官拉响了警钟。配料表上写的鸡肉含量为52%&#xff0c;新鲜鸡小胸含量为20%&#xff0c;所谓的鲜鸡肉其实就是鸡肉粉。本来养宠物是为了让自己身心愉悦&#xff0c;但这样的行业乱象弄得…

prompt提示词:AI英语词典优化版Pro,让AI教你学英语,通过AI实现一个网易有道英语词典

目录 一、前言二、效果对比三、优化《AI英语词典》提示词四、其他获奖作品链接 一、前言 不可思议&#xff01;我的AI有道英语字典助手竟然与百度千帆AI应用创意挑战赛K12教育主题赛榜首作品差之毫厘 &#xff0c;真的是高手都是惺惺相惜的&#xff0c;哈哈&#xff0c;自恋一…

发票管理设计方案

1、背景介绍 在供应链金融业务场景下&#xff0c;供应商可以依赖与大型企业的合同、发票信息&#xff0c;到金融机构进行融资。本文探讨发票管理的设计方案。 2、需求分析 如上图所示&#xff0c;发票管理主要分为发票信息的管理以及发票可用余额管理2个部分。 名词解释&…

Docker-概念及配置(超详细)

docker 第一章 1、什么是docker 答&#xff1a;docker是一种容器引擎&#xff0c;通过docker可以将软件安装并且配置好以后&#xff0c;做成一个镜像文件。通过这个镜像文件可以快速的安装、配置软件环境 2、3个概念 【docker镜像】&#xff1a;将软件环境安装配置好以后产生…

【QA】Git的底层原理

前言 本文通过一个简单的示例&#xff0c;来理解Git的底层原理。 示例 1、新建本地仓库并上传第一个文件 相关步骤&#xff1a; 新建仓库及创建文件查看文件状态将文件添加到暂存区将文件提交到本地仓库 HMTeenLAPTOP-46U4TV6K MINGW64 /d/GSF_Data/Github/Java/Git/git-…

一张图带你理解 绝对路径 和 相对路径

绝对路径和相对路径是用于定位文件或目录位置的两种不同方式。 1、绝对路径&#xff1a; 绝对路径是从文件系统的根目录开始的完整路径&#xff0c;可以唯一地标识文件或目录的位置。 绝对路径是以根目录开始的 在Unix/Linux系统中&#xff0c;绝对路径是类似于/home/user/do…

2024 OceanBase 开发者大会:OceanBase 4.3正式发布,打造近PB级实时分析数据库

4月20日&#xff0c;2024 OceanBase开发者大会盛大召开&#xff0c;吸引了50余位业界知名的数据库专家和爱好者&#xff0c;以及来自全国各地的近600名开发者齐聚一堂。他们围绕一体化、多模、TP与AP融合等前沿技术趋势展开深入讨论&#xff0c;分享场景探索的经验和最佳实践&a…

基于DEAP数据集的四种机器学习方法的情绪分类

在机器学习领域&#xff0c;KNN&#xff08;K-Nearest Neighbors&#xff09;、SVM&#xff08;Support Vector Machine&#xff09;、决策树&#xff08;Decision Tree&#xff09;和随机森林&#xff08;Random Forest&#xff09;是常见且广泛应用的算法。 介绍 1. KNN&am…

Let‘s Move Sui:解锁区块链高性能潜力,探索创新开发体验

Sui 是基于第一原理重新设计和构建而成的 L1 公链&#xff0c;旨在为创作者和开发者提供能够承载 Web3 中下一个十亿用户的开发平台。 今年&#xff0c;Sui 的原生编程语言 Move 迎来了重要的更新升级。2024 版将增加枚举 Enums、宏函数、Method 语法等功能。这些重要的新功能为…

2024.4.28 机器学习周报

目录 引言 Abstract 文献阅读 1、题目 2、引言 3、创新点 4、总体流程 5、网络结构 5.1、损失函数 5.2、Confidence Maps 5.3、Part Affinity Fields(PAFs) 5.4、多人的PAFs 6、实验 7、结论 深度学习 yolov8实现目标检测和人体姿态估计 Yolov8网络结构 yaml…

基于深度学习的实时人脸检测与情绪分类

情绪分类 实时人脸检测与情绪分类 Kaggle Competion 数据集 fer2013 中的测试准确率为 66%CK数据集的检验准确率为99.87%情绪分类器模型预测从网络摄像头捕获的实时视频中的平均成本时间为 4~ 10ms 关键技术要点&#xff1a; 实时人脸检测&#xff1a;系统采用了前沿的人脸检…

案例-部门管理-新增

黑马程序员JavaWeb开发教程 文章目录 一、页面原型二、接口文档三开发1、controller2、service&#xff08;1&#xff09;service接口层&#xff08;2&#xff09;Service实现层 3、 mapper4、postman 优化 一、页面原型 二、接口文档 在这里插入图片描述 三开发 1、control…

2024年好用又便宜的云手机!哪款性价比高?

随着科技的飞速发展&#xff0c;云计算技术也在不断演进&#xff0c;而云手机作为其创新之一&#xff0c;已经开始在我们的生活中崭露头角。它通过将手机的硬件和软件功能移到云端&#xff0c;让用户能够借助强大的云计算资源完成各种任务。2024年&#xff0c;哪款云手机性价比…

运行django

确保app被注册 urls.py中编写url 视图对应关系 命令行启动 python manage.py runserver

“湘”约你我,“V”你而来!苏州金龙新V系客车闪耀星城

“湘”约你我、为你而来&#xff01;4月24日&#xff0c;苏州金龙新V系智慧客车推介会走进星城长沙。来自湖南省内的160余位旅游客运行业协会及企业代表齐聚一堂&#xff0c;共同见证客车行业新质生产力标杆产品的无限魅力。 当前&#xff0c;湖南的旅游产业和道路运输业正处于…

每年首版次测试报告的要求有哪些?

每年首版次测试报告的要求可能因不同的地区、行业或产品而有所差异&#xff0c;但一般而言&#xff0c;它们通常遵循一些基本的标准和原则。以下是一些常见的首版次测试报告要求&#xff1a; 完整性&#xff1a;测试报告应包含所有必要的测试内容&#xff0c;包括但不限于测试…
最新文章