1、前言
S3-Uploads:该插件作用是将wordpress的图片上传至支持S3协议的对象存储中。
需要注意的是,该插件不会将图片保存至服务器。
2、安装插件
之前版本可以通过下载zip包,手动安装。新版只能使用php composer安装。
进入wordpress根目录,即wp-config.php所在的目录。执行以下命令拉取插件。
composer require humanmade/s3-uploads
如果是root用户执行的命令,中途会提示是否继续。输入 yes 继续。
安装完之后,在wp-config.php中添加如下代码配置插件。
require_once __DIR__ . '/vendor/autoload.php';
define("S3_UPLOADS_ENDPOINT", "https://tst.oss-ap-southeast-1.aliyuncs.com"); //服务商提供的对象存储EndPoint域名
define("S3_UPLOADS_BUCKET", "tst");//创建的存储桶名称
define("S3_UPLOADS_BUCKET_URL", "https://oss.mydomain.com");//自定义绑定的存储桶域名
define("S3_UPLOADS_REGION", "auto");//存储桶所在区域,如果auto不行,则填写具体区域例如阿里云新加坡: oss-ap-southeast-1
define("S3_UPLOADS_KEY", "123333key");//key
define("S3_UPLOADS_SECRET", "233333");//密钥
define("S3_UPLOADS_AUTOENABLE", true );//上传图片时自动上传至对象存储,也可以填写false,通过crontab定时任务批量上传
修改主题functions.php添加如下代码
add_filter( 's3_uploads_s3_client_params', function ( $params ) {
$params['endpoint'] = S3_UPLOADS_ENDPOINT; //wp-config.php定义的端点
$params['use_path_style_endpoint'] = true;//使用URL的形式访问的OSS资源
$params['debug'] = false; //关闭调试
return $params;
} );
多说一句如果用的是阿里云等服务商。上面use_path_style_endpoint如果设置为true,则S3_UPLOADS_ENDPOINT需要填Bucket域名,例如tst.oss-ap-southeast-1.aliyuncs.com。设置为false,则填写Endpoint域名oss-ap-southeast-1.aliyuncs.com。至此,该插件已配置完成,但是还没激活插件哦。
3、安装WP CLI
该插件没有页面配置项,全靠命令操作,因此需要安装WP CLI。
#下载最新的稳定版WP-CLI Phar文件
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
#给下载的文件添加可执行权限
chmod +x wp-cli.phar
#将WP-CLI移动到/usr/local/bin下
sudo mv wp-cli.phar /usr/local/bin/wp
输入 wp --version
如果输出版本则安装成功。root用户使用任何wp cli命令均需要带上--allow-root。例如:wp --version --allow-root
。
查看wordpress版本。进入wordpress根目录或者使用 --path 参数指定wordpress目录。执行wp core version --allow-root
即可查看版本。
4、激活插件
进入wordpress后台激活插件。
进入wordpress根目录执行以下命令。
wp plugin activate s3-uploads --allow-root
wp s3-uploads verify --allow-root
至此插件则完全激活。
5、简单使用及总结
#列出对象存储中文件
wp s3-uploads ls [<path> 路径可选项]
wp s3-uploads ls --allow-root
#将wp-content/uploads上传至存储桶
wp s3-uploads upload-directory <from 本地路径> <to 远程路径>
wp s3-uploads upload-directory --allow-root /www/wwwroot/x.com/wp-content/uploads wp-content/uploads
#删除远程文件或文件夹
wp s3-uploads rm --allow-root wp-content/uploads
是不是很繁琐😂。如果仅仅为了用阿里云oss或者腾讯云cos则完全没必要用这个插件。github上有很多简单易用的插件。
其实我是想白嫖大善人Cloudflare R2。奈何wordpress支持S3的插件要么免费有一堆限制,要么完全收费。囊中羞涩只好曲线救国。
文章评论