上传文件到云服务器存储路径,配置WordPress上传图片/附件文件同步到UPYUN又拍云存储...

这几天笔者一直在折腾UPYUN又拍云存储相关的问题且整理到不少的基础文章,昨天已经创建且绑定域名,并且又拍云还支持一键快速配置SSL证书。对于一般的站长而言,我们希望网站速度打开快一些,这样用户体验会比较好,如果在本身的服务器资源比较固定限制的时候,我们就要寻求细微的改善,比如将静态资源与网站分离,一般会使用到第三方云存储+CDN加速。

因为考虑到UPYUN又拍云免费空间支持HTTPS流量,所以暂时就准备将占用资源较大的图片资源单独存放到又拍云存储中,这样就减低页面的加载资源提高速度。我们可以实现的方法有很多种,比如可以手工将图片传到云存储空间中,然后编辑文章的时候调用图片,或者采用W3 Total Cache缓存插件结合FTP同步上传图片。

在这篇文章中,我准备使用hacklog remote attachment upyun插件,实现WordPress附件图片文件上传到又拍云存储中,然后直接从又拍云存储调用图片,一来可以降低服务器的存储空间,二来可以提高网站打开速度,毕竟这类第三方存储空间具备CDN加速,应该是比自己服务器速度快。

19b9d19dc6e897f4444d96134ffc56fe.png

第一、 WordPress同步又拍云插件

插件地址:https://github.com/ihacklog/hacklog-remote-attachment-upyun

目前这款插件并没有在WordPress官方平台中,以前有一款老版本在的,这款比较新的插件提交在GITHUN上,我们下载后安装到当前WordPress网站中。

第二、 配置同步又拍云插件准备工作

1、如果我们直接看到这篇文章的,那需要创建一个又拍云存储空间,如果我们域名有BA过的,可以设定绑定自己的域名,这样觉得更加专业一点点,也可以选择启动SSL证书,具体可以参考这篇文章。

2、开启表单API

1bc665ecb5bc71aee7cd1b613d2acbd4.png

因为我们上传的图片、附件文件会直接上传到又拍云存储中,所以需要开启API,这样不经过本地服务器,直接传到又拍云存储空间中。

3、开启防盗链

ff404c706b9a0bbdc10eb9ed255659ec.png

如果我们附件文件较大,或者希望启动防盗链,可以直接开启Token 防盗链,设置一个密钥,记下来,等会设置需要,如果不希望启动那就不管了。

第三、 又拍云同步WordPress插件设置

1、管理员、表单API设置

87799673ceb9872585f967d107d264c3.png

根据我们创建的云存储空间设置空间名称、操作员用户名和密码。以及我们开启的API密钥,其他参数默认。如果防盗链设置密钥后,就填写,没设置启动就留空。

2、设置URL和路径

1774c6461e5f5b21bab14cdd8cf73e29.png

上面几行的参数都默认即可,主要是最后这三行,远程URL是我们自定义的域名,以及在服务器和存储空间保存文件的路径。

第四、 WordPress站点文件的路径定向

因为我们即将图片和附件都采用又拍云存储空间上的,如果我们是新网站那就不用管,但是已经本地有存储图片的,我们需要全部转移拷贝一份到远程空间中。这里我们直接用FTP链接到又拍云,然后对应路径传上去。

3be2dffca64b2149087e44a0e741bf4b.png

理论上我们需要将全站本地地址的目录替换成又拍云的绑定空间的地址,但是这个插件提供一键转移,点击后直接就替换掉了。刷新页面,我们可以看到当前的全部使用的又拍云空间存储地址文件。

第五、 小结

1、这个hacklog remote attachment upyun插件能够和又拍云完美结合,将WordPress附件文件传到存储中,使得静态文件完全调用又拍云存储的,提高网站速度降低资源占用。

2、唯一不足的是上传文件完全到又拍云存储中,本地没有同步一份,如果能给用户选择本地也保存一份这样对于数据的安全会更好一些。这样完全是在又拍云,如果,我们定期也需要将又拍云存储文件备份到本地,确保数据的安全。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用 WordPress 的过滤器函数 `wp_handle_upload_prefilter` 和 `wp_handle_upload` 来实现根据文件类型自动存储到对应目录的功能。 首先,您需要在 `functions.php` 文件中添加以下代码: ```php function custom_upload_dir($dirs) { $file_types = array( 'jpg|jpeg|jpe' => 'images', 'gif' => 'images', 'png' => 'images', 'bmp' => 'images', 'tif|tiff' => 'images', 'ico' => 'images', 'pdf' => 'documents', 'doc|docx' => 'documents', 'ppt|pptx' => 'documents', 'odt' => 'documents', 'mp3|m4a|aac' => 'audio', 'wma' => 'audio', 'wav' => 'audio', 'mp4|m4v|mov|wmv|avi|mpg|ogv|3gp|3g2' => 'videos' ); $file_ext = strtolower(pathinfo($_REQUEST['name'], PATHINFO_EXTENSION)); foreach ($file_types as $type => $dir) { if (preg_match('/^' . $type . '$/', $file_ext)) { $dirs['path'] = $dirs['basedir'] . '/' . $dir; $dirs['url'] = $dirs['baseurl'] . '/' . $dir; $dirs['subdir'] = '/' . $dir; break; } } return $dirs; } add_filter('upload_dir', 'custom_upload_dir'); function custom_handle_upload($file) { $file_types = array( 'jpg|jpeg|jpe' => 'images', 'gif' => 'images', 'png' => 'images', 'bmp' => 'images', 'tif|tiff' => 'images', 'ico' => 'images', 'pdf' => 'documents', 'doc|docx' => 'documents', 'ppt|pptx' => 'documents', 'odt' => 'documents', 'mp3|m4a|aac' => 'audio', 'wma' => 'audio', 'wav' => 'audio', 'mp4|m4v|mov|wmv|avi|mpg|ogv|3gp|3g2' => 'videos' ); $file_ext = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION)); foreach ($file_types as $type => $dir) { if (preg_match('/^' . $type . '$/', $file_ext)) { $subdir = '/' . $dir; $dir = wp_upload_dir(); if (!file_exists($dir['basedir'] . $subdir)) { wp_mkdir_p($dir['basedir'] . $subdir); } $path_parts = pathinfo($file['name']); $new_file_name = $path_parts['filename'] . '_' . uniqid() . '.' . $path_parts['extension']; $file['name'] = $new_file_name; $file['path'] = $dir['basedir'] . $subdir . '/' . $new_file_name; $file['url'] = $dir['baseurl'] . $subdir . '/' . $new_file_name; break; } } return $file; } add_filter('wp_handle_upload_prefilter', 'custom_handle_upload'); ``` 这段代码定义了一个 `$file_types` 数组,其中包含各种文件类型及其相应的目录。每次上传文件时,WordPress 将使用 `wp_handle_upload_prefilter` 过滤器函数来检查文件类型,并使用 `wp_handle_upload` 函数将文件存储到相应的目录中。 注意,这段代码中使用了 `preg_match` 函数来检查文件类型,因此您需要确保 `$file_types` 数组中包含所有您想要支持的文件类型及其相应的正则表达式。 希望这能帮助到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值