前言:
图床:是用于存放图片的空间,基于图床可以快捷地实现图片分享,便于日常使用和前端开发。
Alist:一个支持多种存储的文件列表程序,AList 支持多个存储提供商,包括本地存储、阿里云盘、OneDrive、Google Drive 等;AList 支持所有 WebDAV 存储,这是一种用于访问文件的标准。
OneDrive 是微软的一个存储网盘,它可以通过申请E5开发者账号免费白嫖5TB的存储空间,最高可以申请到25TB,用作图床存放源已经完全够用。
Lsky Pro(兰空图床) 是一款基于 PHP 开发的开源图床项目,界面美观且易于操作,目前支持本地存储
、AWS S3
、阿里云 OSS
、腾讯云 COS
、七牛云
、又拍云
、SFTP
、FTP
、WebDAV
、Minio
等多类存储服务。
Lsky Pro 的优势在于其支持 WebDAV
协议,因此我们可以使用 AList 绑定个人网盘(如阿里云盘、百度网盘、天翼云盘、夸克网盘等),将 AList 提供的 WebDAV
服务作为图床的存储策略,进而充分利用云盘空间,通过图床将图片托管到个人网盘。
注意:
推荐使用香港1Gbps服务器搭建Alist网盘,挂载OneDrive时可以选择本地代理,提高国内访问速度的体验。
怎么白嫖E5开发者账号可以通过百度教程。
效果展示




官方文档
LskyPro 兰空图床官方文档:https://docs.lsky.pro
AList 官方文档:https://alist.nn.ci
部署步骤
注意:在部署开始前你应该拥有一台公网服务器,另外,以下步骤依赖于 Docker、Nginx 和 AList,请提前安装相关依赖并配置,本文档只对 LskyPro 图床的搭建步骤和必要的注意事项进行介绍。
AList挂载 OneDrive网盘
请根据AList官方文档完成挂载OneDrive网盘:OneDrive | AList文档 (nn.ci)
注意:完成挂载后推荐使用本地代理

配置 AList WebDAV 服务
在个人网盘中创建 图床
文件夹,并在 AList 中将该文件夹挂载到路径 /OneDrive
,如下图所示:

以上步骤完成后,访问 DAV
链接并通过身份校验后,即可进行图片的上传与访问。假设 AList 绑定的公网域名为 p.tr0.cn
,则图片存储服务的 DAV
链接为:https://
。p.tr0.cn
/dav/OneDrive
启动 LskyPro 图床容器服务
LskyPro 图床服务依赖于多个PHP插件,为了方便部署,我们采用 Docker 的方式安装 ,命令如下:
# 创建容器并启动(宿主机4003端口可自行更改)
sudo docker run -d --name lskypro --restart unless-stopped -p 4003:80 -v /data/lskypro:/var/www/html coldpig/lskypro-docker:latest
注意:如果在 Nginx 配置中开启了 HTTPS ,需要执行以下命令修改图床项目源码,否则前端页面布局将被打乱:
sudo docker exec -it lskypro sed -i '32 a \\\Illuminate\\Support\\Facades\\URL::forceScheme('"'"'https'"'"');' /var/www/html/app/Providers/AppServiceProvider.php
创建反向代理
推荐直接只用 宝塔面板 方便管理
1.先通过宝塔创建一个网站,以我的域名 i.tr0.cn 为例
2.在站点设置添加反向代理:
注意:目标URL为http://你的服务器IP:4003

添加完成反向代理后,需要手动设置一下反向代理的配置文件:
假设图床服务的域名为:https://i.tr0.cn
在配置文件中添加如下配置:
location /img {
# 网盘图片存放地址
proxy_pass https://p.tr0.cn/d/OneDrive/%E5%9B%BE%E5%BA%8A;
# OneDrive打开图片默认会下载,隐藏头信息实现不下载直接预览
proxy_hide_header Content-Disposition;
proxy_hide_header X-Databoundary;
proxy_hide_header X-Download-Options;
# 设置连接超时时间
proxy_read_timeout 600s;
}

配置 LskyPro 图床
打开创建的图床网站,我以i.tr0.cn
为例:
A. 数据库配置
以上步骤完成后,浏览器访问图床服务(https://i.tr0.cn)可进入如下图所示的配置页面。配置页面将引导我们设置数据库服务,为了减轻工作量,我们直接使用本地 SQLite 数据库,数据库路径留空即可(将自动在服务根目录的 database
目录下创建 database.sqlite
文件),同时需要设定管理员邮箱和登录密码。

配置完成后根据引导进入图床首页。

B. 设置存储策略

我们这里使用 AList 提供的 WebDAV 服务创建一个新的存储策略,配置项如表所示,其中访问域名即为图片直链对应的域名和路径。
注意:记得选中角色组,否则存储策略不会生效。
配置项 | 配置内容 | 说明 |
---|---|---|
名称 | WebDAV 存储区 | |
储存策略 | WebDAV | |
访问域名 | http://i.tr0.cn/img | 记得添加 /img 后缀,与 Nginx 配置保持一致 |
URL Queries | 留空,无需填写 | |
连接地址 | https://p.tr0.cn/ | p.tr0.cn 为 AList 服务访问域名 |
认证方式 | Basic | 务必选择 Basic,否则连接失败 |
路径前缀 | /dav/OneDrive/图床 | 与 AList 存储配置保持一致 |
用户名 | ${username} | AList WebDAV 用户名 |
密码 | ${password} | AList WebDAV 访问密码 |

C. 设置 WebDAV 为默认存储策略
WebDAV 存储策略添加后可以将默认本地存储策略删除,防止用户将图片上传至本地服务器。
鸣谢
本文参考来源于:AList+云盘+LskyPro · 搭建大容量图床 | LeoHao’s Blog
本文内容在该教程基础上进行的二次修改。
写在最后
这里给出一个搭建成功并上传图片成功的图片外链:650c7e116b001.jpg (3840×2160) (tr0.cn)
