使用 Alist WebDav 搭建图床服务
前言
个人博客,最烦的就是图片的存储了,最开始用的第三方的个人搭建的图床,跑路了,接着用 jsDelivr,后面又用 GitHub、Cloudflare、NPM 使用 npm.elemecdn.com
镜像,折腾来折腾去,没一个稳定的,今年就发现了一个 Alist 这个项目,一直想写这篇文章,一直没时间写(原先是用的 spencerwooo/onedrive-vercel-index 但是 Vercel 被 Q 了,没办法)
Alist 官网介绍说一个支持多存储的文件列表 WebDAV
程序,看到这个 WebDav
,我就想着是不是就可以搭建一个支持上传 WebDav 的图床服务?就查了下攻略,刚好 Lsky Pro(兰空)图床支持 WebDav 上传,而且后台展示也深得我心!
预览
部署步骤
你需要一台服务器 / VPS,可以薅甲骨文的
安装 Linux 宝塔面板(当然,你也可以手动安装 Lsky Pro,但是宝塔更方便罢了,免除了配置 Nginx)
部署 Lsky Pro
在宝塔界面里,添加站点(安装 MySQL 时选择 >=5.7,PHP >= 8.0.2)
进入源码部署页面,在线远程下载,填入以下源码链接进行安装依赖,用其它的可能会有问题,反正宝塔是这样的
1
https://github.com/lsky-org/lsky-pro/archive/refs/heads/master.zip
下载好解压之后输入如下安装依赖,安装完成后目录会生成个
vendor
目录。1
2cd /www/wwwroot/lsky-pro-master # 对应你自己的目录
sudo composer install设置运行目录为
/public
,并删除如下 PHP 函数exec
、shell_exec
、readlink
、symlink
、putenv
、getenv
安装 PHP 扩展
进入 PHP 设置 → 安装扩展,选择安装
fileinfo
,imagemagick
和exif
添加伪静态配置
站点设置进入伪静态,输入如下规则
1
2
3
4
5location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last; break;
}
}设置目录 755 权限
后面打开域名直接安装即可
部署 Alist
配置 WebDav
进入 Lsky Pro 后台,选择储存策略,默认储存策略为本地储存,我们这里使用 AList 提供的 WebDAV 服务创建一个新的储存策略
访问域名 | 就是上传图片之后,该图片所显示的链接 |
---|---|
连接地址 | Alist 地址 |
认证方式 | 选择 Basic |
路径前缀 | /dav/挂载路径,这个路径前缀放到下面再详讲 |
用户名 | Alist 用户名,默认 admin |
密码 | Alist 密码 |
最后创建储存策略即可上传图片到你 Alist 所挂载的网盘里了
路径前缀
这个前缀就是你 Alist 挂载网盘的一个路径,比如我挂载了天翼云盘,名字叫 pic1
那么这个路径前缀就是 /dav/pic1
,OneDrive 就叫 /dav/OneDrive
上传成功之后,访问链接要输入用户名和密码或者 404?
这个你需要到 Lsky Pro 站点中配置如下内容
Alist Host:Port/d/挂载路径
/img 要和上一步访问域名的路径保持一致!
1 | location /img { |
其它方案
如果不想在网站部署,觉得太麻烦了,想在客户端上传,也不是没有
Windows
在 PicGo 的基础上经过深度的二次开发,不仅完整保留了 PicGo 的所有功能,还增添了许多新的 feature。可以配合 Typora 上传
Android \ IOS
一个用于快速上传图片和管理云存储/图床/SFTP的移动端工具