Alist+OneDrive+Lsky Pro(兰空图床)+Nginx反向代理,搭建个人低成本大空间图床。
图床:是用于存放图片的空间,基于图床可以快捷地实现图片分享,便于日常使用和前端开发。
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
服务作为图床的存储策略,进而充分利用云盘空间,通过图床将图片托管到个人网盘。
理论上,只要AList 支持的存储都可以作为图床的存储空间。
注意:
推荐使用香港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
本文内容在该教程基础上进行的二次修改。
写在最后
本文于站长个人博客发布于2023年9月22日,本文为历史恢复文章,以下图片外链已失效!
这里给出一个搭建成功并上传图片成功的图片外链:650c7e116b001.jpg (3840×2160) (tr0.cn)