简介
Lsky Pro 是一个用于在线上传、管理图片的图床程序,中文名「兰空图床」,你可以将它作为自己的云上相册,亦可以当作你的写作贴图库。
兰空图床的上传支持多图上传、队列排队、拖拽上传、预览图片、粘贴上传、快捷复制链接等特点,页面简洁实用,上传页面还支持切换不同的储存,同时管理员还可以对游客、用户进行精确控制上传的图片大小、类型、上传频率、图片审核等限制。
在开始决定使用图床之前,确保你的图床服务器和对应的域名稳定且能长期使用,否则就是在给自己挖坑。
部署Lsky Pro
我强烈推荐在Docker中运行LskyPro,因为即使你的服务器有安装php,安装过所有所需的插件,LskyPro还需要执行一些危险的php命令,这需要你在配置文件中手动解除这些命令的限制,麻烦不说,会对你服务器上其他站点的安全性造成影响。
我所使用的兰空Docker镜像:
容器镜像地址:https://hub.docker.com/r/halcyonazure/lsky-pro-docker
容器GitHub地址:https://github.com/HalcyonAzure/lsky-pro-docker
运行容器
下面两种方法,喜欢哪个用哪个。
方法一、用Docker Compose描述文件部署
创建一个文件夹,用于存放文件。
mkdir -p ~/docker/lsky && cd ~/docker/lsky
用vim等文本编辑器将下面的文本写入docker-compose.yaml
中
version: '3.3'
services:
lsky-pro-docker:
container_name: lsky-pro
restart: always
ports:
- '127.0.0.1:9080:80'
volumes:
- './data:/var/www/html'
image: 'halcyonazure/lsky-pro-docker:latest'
容器操作命令:
在~/docker/lsky
文件夹执行docker-compose
命令以控制容器的启动与停止。
启动容器:docker-compose up -d
停止并删除容器:docker-compose down
方法二、Docker命令部署
直接在服务器终端中执行以下命令:
docker run -d \
--name lsky-pro \
--restart unless-stopped \
-p 9080:80 \
-v /usr/local/lsky-pro:/var/www/html \
halcyonazure/lsky-pro-docker:latest
其中-p 9089:80
参数指的是将容器的80端口映射到你服务器的9080端口上
-v /usr/local/lsky-pro:/var/www/html
参数指的是将容器的数据文件映射到你服务器上的/usr/local/lsky-pro
文件夹上。
这两个参数可以根据自己的需求更改。
更详细的Docker用法可以看我的这篇文章:https://hash070.top/docker-note.html
如果容器拉取失败,可以尝试Docker换源:https://hash070.top/docker-change-mirror.html
容器运行起来后就可以通过IP+端口号的方式进入容器了,这里我们先不急着进容器,先把反向代理与https搞好再进去。
配置Nginx反向代理
兰空对Nginx没有什么特殊的要求,不需要WebSocket
反代到本地的http://127.0.0.1:9080
即可,我的Nginx反代内容如下
location /
{
proxy_pass http://127.0.0.1:9080;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-Proto https;
add_header X-Cache $upstream_cache_status;
}
图床设置
设置帐号与数据库
首次进入兰空时会要求设置管理员邮箱与密码,还有配置数据库
数据库我推荐直接使用SQLite数据库,不建议使用MySQL,理由如下
- SQLite数据库本身性能足够好,它的并发写入性能虽然不如MySQL,但并发查询效率不比MySQL弱,而且SQLite数据库理论上最大可以达到140T,足以支撑一个人或一个小团队用。
- 使用SQLite方便迁移数据。
配置存储策略链接
进入仪表盘,找到打开默认存储策略
确保这里的链接是正确的,比如如果你配置了SSL证书,那么链接前缀应该为https,如果你使用非常规端口,那么端口应该写对
注意,新增的用户组必须在存储策略这里选中所有用户组然后点一下保存,否则可能会因为角色组未绑定存储策略而导致无法上传图片。
系统设置
如果是自用的图床且没有接入审核机制的话,如果路人上传一些奇怪的图片就不好了,所以建议关闭注册功能
与游客上传功能
由于现在的兰空图床暂时没有后台直接添加用户的功能
想添加用户的话可以暂时打开注册功能,然后自己手动注册,注册完关掉就行。
设置帐号存储空间限制
帐号默认限制500M的图片上传,我们可以在用户管理
中更改这一项
找到自己的帐号,往右边拉,点击右边的编译按钮
在总容量
后面多加几个0然后保存就行了
图片上传设置
进入后台
->设置
可以看到如下界面
推荐把图片粘贴后动作
改为直接上传,方便使用
默认权限改为私有,防止上传的图片被路人看到
图片上传限制与固定链接设置
首先图床上传默认有限制,作为图床的Owner当然不希望自己被限制了,而且图片上传后会生成一个相应的链接,默认比较长,且带了上传日期等信息
我们可以在角色组
中更改这些设置
进入后台,找到自己所在的角色组
前面几行是关于上传限制的数据,每个值后面都加几个0
嫌链接太长的话可以把路径命名规则
这一项删掉
2022-8月新更新:兰空图床现已经支持图片压缩功能,如果你的图床是博客专用的,则强烈推荐开启图片压缩!可以大幅节省服务器带宽和存储空间,并提升访客图片的加载速度
推荐的压缩格式为webp
如果有时候不想让图片压缩,则可以通过开小号的方式解决
然后点击保存即可
搭配Typora实现图片自动上传功能
有了兰空图床,我们可以在Typora里实现图片粘贴自动上传的功能,这样写博客就更方便了。
获取Token
使用在线的网站发送请求的方法我觉得不够安全,这里我使用apifox
来发送请求与获取token
首先打开接口
,找到接口url
然后按下面的文档所示,发送post
请求,填写相关参数,即用户名和密码
链接应该写为接口url
+相关路径
例如要想获取token,我们的url应该写成
https://你的图床域名/api/v1/tokens
如上图文档所示,我们在Body中填写正确的email
和password
字段,然后发送post请求即可获取token
那么在ApiFox中这样发送请求即可
获取的token应该长这样:1|1bJbwlqBfnggmOMEZqXT5XusaIwqiZjCDs7r1Ob5
然后在前面加一个Bearer
,组合为:Bearer 1|1bJbwlqBfnggmOMEZqXT5XusaIwqiZjCDs7r1Ob5
就可以用了
安装和配置PicGo
我们需要借助PicGo来实现图片上传服务
GitHub下载链接:https://github.com/Molunerfinn/PicGo/releases
备用下载链接:https://dr.yun.hash070.top:66/s/aAIx
安装后可以在插件设置中搜索lankong
就能找到这个插件(安装插件时需要管理员权限)
如果插件安装失败的话,你需要退出然后以管理员的方式打开PicGo,再尝试安装这个插件。
安装成功后在图床设置
中找到lankong
,按图示填写
其中第一项选V2
第二项Server指的是你的图床网址,如https://mylankong.xxx.com
第三项是我们刚刚获取到的Token
第五项是忽略证书错误,如果你的图床没有配置合法证书,或者是自签证书的话可以勾选上
第六项是同步删除
填完点保存
然后在上传区
选择lankong
,随便粘贴一个图片上去试试,看看能不能用
然后打开Typora的文件
-> 偏好设置
,按如图所示设置

然后就大功告成了,去新建一个markdown往里面粘贴图片试试把,你会发现粘贴的图片会自动上传到图床并把链接转换为图床外链的,这样复制到博客的时候就不用担心图片无法显示了。