前言

个人博客,最烦的就是图片的存储了,最开始用的第三方的个人搭建的图床,跑路了,接着用 jsDelivr,后面又用 GitHub、Cloudflare、NPM 使用 npm.elemecdn.com 镜像,折腾来折腾去,没一个稳定的,今年就发现了一个 Alist 这个项目,一直想写这篇文章,一直没时间写(原先是用的 spencerwooo/onedrive-vercel-index 但是 Vercel 被 Q 了,没办法)

Alist 官网介绍说一个支持多存储的文件列表 WebDAV 程序,看到这个 WebDav,我就想着是不是就可以搭建一个支持上传 WebDav 的图床服务?就查了下攻略,刚好 Lsky Pro(兰空)图床支持 WebDav 上传,而且后台展示也深得我心!

预览

1701659068026.webp

1701659120988.webp

1701659148239.webp

1701659171407.webp

部署步骤

  1. 你需要一台服务器 / VPS,可以薅甲骨文的

  2. 安装 Linux 宝塔面板(当然,你也可以手动安装 Lsky Pro,但是宝塔更方便罢了,免除了配置 Nginx)

  3. 部署 Lsky Pro

    在宝塔界面里,添加站点(安装 MySQL 时选择 >=5.7,PHP >= 8.0.2)

    1701660439751.webp

    进入源码部署页面,在线远程下载,填入以下源码链接进行安装依赖,用其它的可能会有问题,反正宝塔是这样的

    1
    https://github.com/lsky-org/lsky-pro/archive/refs/heads/master.zip

    下载好解压之后输入如下安装依赖,安装完成后目录会生成个 vendor 目录。

    1
    2
    cd /www/wwwroot/lsky-pro-master  # 对应你自己的目录
    sudo composer install

    1701660541934.webp

    设置运行目录为 /public,并删除如下 PHP 函数 execshell_execreadlinksymlinkputenvgetenv

    1701661177598.webp

    安装 PHP 扩展

    进入 PHP 设置 → 安装扩展,选择安装 fileinfoimagemagickexif

    1701661054697.webp

    添加伪静态配置

    站点设置进入伪静态,输入如下规则

    1
    2
    3
    4
    5
    location / {
    if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php?s=$1 last; break;
    }
    }

    设置目录 755 权限

    1701668383411.webp

    后面打开域名直接安装即可

  4. 部署 Alist

    这个简单,跟着官网一键脚本或者使用 Docker 都可以,然后添加存储

配置 WebDav

进入 Lsky Pro 后台,选择储存策略,默认储存策略为本地储存,我们这里使用 AList 提供的 WebDAV 服务创建一个新的储存策略

1701669626514.webp

访问域名就是上传图片之后,该图片所显示的链接
连接地址Alist 地址
认证方式选择 Basic
路径前缀/dav/挂载路径,这个路径前缀放到下面再详讲
用户名Alist 用户名,默认 admin
密码Alist 密码

最后创建储存策略即可上传图片到你 Alist 所挂载的网盘里了

路径前缀

这个前缀就是你 Alist 挂载网盘的一个路径,比如我挂载了天翼云盘,名字叫 pic1 那么这个路径前缀就是 /dav/pic1,OneDrive 就叫 /dav/OneDrive

1701670217713.webp

上传成功之后,访问链接要输入用户名和密码或者 404?

这个你需要到 Lsky Pro 站点中配置如下内容

Alist Host:Port/d/挂载路径

/img 要和上一步访问域名的路径保持一致!

1
2
3
4
location /img {
proxy_pass http://127.0.0.1:5244/d/pic2;
proxy_read_timeout 600s;
}

1701671248164.webp

其它方案

如果不想在网站部署,觉得太麻烦了,想在客户端上传,也不是没有

Windows

  • PicList

    在 PicGo 的基础上经过深度的二次开发,不仅完整保留了 PicGo 的所有功能,还增添了许多新的 feature。可以配合 Typora 上传

Android \ IOS

  • PicHoro

    一个用于快速上传图片和管理云存储/图床/SFTP的移动端工具

参考链接