alist+webdav 做wordpress的远程附件库

前言

这几天心血来潮,把新的域名部署了一下,顺便把主题的域名授权改回来了。打算以后写博文的方式就当记笔记了,自己能看懂就可以。不会特别清晰。

部署

alist

我自己用的1panel,直接一键部署alist即可,然后配置下即可,需要注意一下几点

因为alist是用guest来让用户访问公共的,所以记得一定要把guest开了

然后在全局里,把全局签名关了,否则不签名根本下不了

最后创建一个存储,专门用来存放图片,其他的把 签名开关 打开,不是公共作为可以下载的就一定要开,公共的可以不用签名。

rclone

rclone这个,网上的教程有点少,直接贴我看到的可以的。

# 创建目录存放下载的文件
mkdir -p /opt/rclone && cd /opt/rclone

# 安装 rclone挂载的必须依赖
apt -y install fuse3

# 下载文件
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip

# 解压
apt -y install unzip && unzip rclone-current-linux-amd64.zip

# 切目录,进去拷,加到系统里
cp rclone /usr/bin

# 改下执行权限
chmod 755 /usr/bin/rclone

# 测试是否正常
rclone --version

rclone 的设置就不多说了,选webdav就可以,alist的webdav地址因为1panel在安装时候默认已经在127.0.0.1:5244 已经监听了,就没啥说的了。

在rclone config的时候,这是以下需要注意的:

  • webdav的地址为:127.0.0.1:5244/dav/你在alist上挂载存储写的路径
  • webdav的类型rclone上选其他就可以
  • bearer_token和其他的高级设置什么的全部选n,不管

然后先测试下是否正常

很简单,直接用rclone lsd alist: 来看,看有没有反应,alist: 这个部分是你在rclone config的时候自己写的名字。

如果能出来就没问题。接下来写服务文件自启

# 先创建文件
touch /usr/lib/systemd/system/rclone.service

# 然后写入以下内容
[Unit] 
Description=rclone
Before=docker.service

[Service] 
User=root 
ExecStart=/usr/bin/rclone mount alist: 本地的路径/wp-content/uploads/ \
                    --copy-links \
                    --no-gzip-encoding \
                    --no-check-certificate \
                    --allow-other \
                    --allow-non-empty \
                    --use-mmap \
                    --umask 022 \
                    --vfs-cache-mode full \
                    --vfs-cache-max-age 60s \
                    --vfs-cache-max-size 1G \
                    --dir-cache-time 60s \
                    --uid 1000 \
                    --gid 1000 
                    

[Install] 
WantedBy=multi-user.target

几个给自己看的点:

  • –umask 这个 022 是指 文件 755 目录 644 刚好符合网站(吐槽一下,傻逼官网都他喵没有这个,但是在mount的帮助里倒是有,真傻比)
  • 因为要修改权限,所以必须要cache,而且cache可以防止api请求过多网盘炸了。所以加上了–uid 和 –gid,1panel的php要求文件非要是1000:1000,冒的办法
  • vfs-cache-mode 最好是full,age是过期时间,size是能够缓存多少,我觉得60s就差不多了,尽快同步上去,而且alist好像自带队列。
  • 在进行搭建的时候,最好先把uploads文件夹打包存档一份。直接丢到网盘对应的地方,这样就方便了。

然后就很简单了 systemctl daemon-reloadsystemctl enable rclone --now 结束

openresty

这部分,不关你是宝塔还是1panel,nginx系的都这么玩把,直接贴相对应的。

还是一点,一定要按照wp原来的方式来放文件夹,不要乱放

location ~ ^/wp-content/uploads/(.*)$ {
    # 使用HTTP 301重定向
    return 301 https://你的alist的地址/d/wordpress/$1;
}

看到这里大概也知道为啥要去掉签名了把,因为302转跳没办法生成签名。这样做就没问题了

自己上传一下图片看看,就知道结果了

结语

这是在搞完的一晚上写出来的,我发现我真的好懒啊哈哈哈哈哈,懒得更新

不想贴图了都。

在测试的时候,发现还是有一丝丝延迟,并且wp可以打开,但是你就是找不到源文件,不好说,但是这么搭配,确实等于多了个图床和cdn,还是无限流量的,就是有一点危险,如果有人剑皇刷你,所有的图片都会打不开啥的。只适合我们这种比较小流量的网站玩玩把x

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容