使用开源工具挂载夸克网盘的WebDAV服务
- 下载工具
bash
wget https://github.com/chenqimiao/quarkdrive-webdav/releases/download/v1.3.3/quarkdrive-webdav-x86_64-unknown-linux-gnu.tar.gz
tar -zxvf quarkdrive-webdav-x86_64-unknown-linux-gnu.tar.gz
- 运行工具
bash
quarkdrive-webdav --quark-cookie '你的cookie' -U '用户名' -W '密码' -p 8080
cookie可以在夸克网页登录后通过控制台获取
- 设置开机启动
```bash
cat <
[Service] Type=simple ExecStart=/root/quark/start-quark.sh Restart=always User=root
[Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable quark
#!/bin/bash
/root/quark/quarkdrive-webdav --quark-cookie "$(cat /root/quark/cookie.txt)" -U admin -W password -p 8082
``
cookie比较长,可以放在/root/quark/cookie.txt`中
将WebDAV挂载到vps
- 安装工具
bash
apt install davfs2
- 创建挂载目录
bash
mkdir /path/webdav
- 挂载 WebDAV
bash
mount -t davfs https://webdav.drive.com/dav /path/webdav
- 输入账号密码
使用以上挂载命令后就会让输入账号密码,填入第一步设置的账号密码
- 配置开机启动
bash
vi /etc/davfs2/davfs2.conf
修改打开use_locks参数,将value从原来的1,改为0
5.1 修改davfs2的secrets文件,添加认证信息 将webdav的地址以及用户名密码输入到最底部。
```bash
cat <<EOF >> /etc/davfs2/secrets
https://webdav.drive.com/dav 用户名 密码
EOF
```
5.2 配置systemd文件
⚠️注意:通常情况下,挂载单元文件(mount unit)的命名是按照要挂载的路径来命名的。这种命名约定是由systemd规定的,以便于自动识别和处理挂载点。如挂载点 /mnt/data 的挂载单元文件应命名为 mnt-data.mount
```bash
cat <
[Mount] What=https://webdav.drive.com/dav #修改为自己的webdav地址 Where=/path/webdav #修改为自己的挂载路径 Type=davfs Options=_netdev,users,rw
[Install] WantedBy=multi-user.target EOF ```
保存后重新加载systemd配置并启动
bash
systemctl daemon-reload
systemctl enable path-webdav.mount
最后可以使用df -h查看一下是否生效
将挂载数据同步到本地
由于webdav速度太慢,严重影响网页加载速度,因此可以将挂载数据同步到本地。
- 安装rclone
```bash # 示例:Debian/Ubuntu sudo apt update sudo apt install rclone
# 示例:CentOS/RHEL sudo dnf install rclone ``` 2. 使用 rclone sync 进行定时同步
2.1 基本的同步命令
bash
rclone sync /var/www/quark/pictures /var/www/pictures --ignore-times --delete-during
2.2 设置定时任务
打开 crontab 配置
bash
crontab -e
在文件末尾添加一行,例如设置为每 5 分钟 同步一次(将 /path/to/rclone 替换为实际的 rclone 路径,通常是 /usr/bin/rclone):
bash
*/5 * * * * /usr/bin/rclone sync /var/www/quark/pictures /var/www/pictures --ignore-times --delete-during --log-file=/var/log/rclone_sync.log
使用files.gallery搭建图片墙
可以使用破解版本Smooth-Files-Gallery
- 将下载的index.php文件上传到vps的/var/www/Photos目录下
-
配置caddy(也可以使用nginx) ```bash cat <
/etc/caddy/photo.xx.xx.service #自行修改 photo.xx.xx { ##自行修改 # 设置网站根目录 root * /var/www/Photos # 开启 gzip 压缩,加快图片加载 encode gzip
# 处理 PHP 文件 (关键步骤) # 注意:unix 路径可能因系统不同而不同,下面是常见的 Ubuntu/Debian 路径 # 如果找不到该文件,请查看下文的“检查 PHP”部分 php_fastcgi unix//run/php/php8.2-fpm.sock
# 静态文件服务(用于直接展示图片) file_server request_body { max_size 200MB } } EOF
重启caddysystemctl restart caddy3. 配置文件权限bash chmod -R 777 /var/www/Photos`` 4. 配置Files.Gallery 4.1 先放问一下http://photo.xx.xx,在index.php所在的文件夹下会生成_files,里面有个config.php, 将里面的root目录改为/var/www/pictures` -
设置上传文件的大小 5.1 caddy上面已经配置了200M 5.2 PHP 上传大小限制(必须设置,否则 Caddy 放开也没用) - /etc/php/8.2/fpm/php.ini - /etc/php/8.2/cli/php.ini
修改:
upload_max_filesize = 200M
post_max_size = 200M
max_file_uploads = 100
重启PHP-FPM:
systemctl restart php8.2-fpm
验证生效
bash
php -i | grep upload_max_filesize
php -i | grep post_max_size
备注
解释一下上面各个文件的作用
| 路径 | 作用 |
|---|---|
| /var/www/Photos/index.php | Files.Gallery 的入口文件,用于展示图片墙。因 files.gallery 会在该目录下创建 _files 等文件,需赋予写权限。 |
| /var/www/Photos/_files/config.php | Files.Gallery 的配置文件,用于设置图片墙参数,如根目录、缓存时间等。 |
| /var/www/quark/pictures | 挂载的 WebDAV 目录,用于存储图片。 |
| /var/www/pictures | 从挂载点同步到本地的目录,Files.Gallery 从此处读取图片。因文件会被覆盖,index.php 需放在其他文件夹。 |
| /var/log/rclone_sync.log | rclone 同步日志文件,记录同步过程中的信息。 |
| /etc/caddy/photo.xx.xx.service | Caddy 配置文件,用于配置图片墙域名、根目录、上传文件大小等。 |