目录
Lsky Pro 是一个开源图床(Github),你可以将你的放图片上床到 Lsky Pro 上并生成相应的可访问链接,这样你就可以将此链接进行分享或添加到你的文档中而不需要加载本地图片。
图片的大致处理流程就是从 PicList 压缩后通过 API 上传到 Lsky Pro,然后 Lsky Pro 再压缩后通过 API 上传到 MiniO 进行存储。关于 Lsky Pro 兰空图床通过 API 上传到 MiniO 的教程可以参考【折腾笔记】兰空图床使用 Minio 作为储存策略,本文主要介绍 PicList 通过 API 上传到 Lksy Pro 兰空图床的教程。
一、Lsky Pro 安装
Compose :
version: '3.7'
services:
lsky-pro:
container_name: lsky-pro
image: dko0/lsky-pro
restart: always
ports:
- 9011:80
environment:
- MYSQL_HOST=mysql
- MYSQL_DATABASE=lsky-pro
- MYSQL_USER=lsky-pro
- MYSQL_PASSWORD=yourpassword # 修改为自己的密码
- REDIS_HOST=redis # Redis 服务的主机名
- REDIS_PORT=6379 # Redis 默认端口
- REDIS_PASSWORD=yourpassword # 如果 Redis 设置了密码,则可以设置此变量
- CACHE_DRIVER=redis
volumes:
- ./config:/var/www/html/config
- ./uploads:/var/www/html/uploads
depends_on:
- mysql
mysql:
container_name: lskypro-db
image: mysql:8.0
restart: always
environment:
- MYSQL_ROOT_PASSWORD=yourpassword
- MYSQL_DATABASE=lsky-pro
- MYSQL_USER=lsky-pro
- MYSQL_PASSWORD=yourpassword # 修改为自己的密码
- MYSQL_BIND_ADDRESS=0.0.0.0 # 添加此行,允许外部连接
volumes:
- ./db:/var/lib/mysql
二、Lsky Pro 设置
1. 基础设置
- 使用超级管理员用户登录兰空图床后台,在“系统设置”内的“控制”模块,启用“是否启用接口”这项配置,然后点击“保存”
- 在“Postman”或者其他你比较熟悉的API调试工具中发送生成Token的API来获取兰空图床的API Token,先新建一个API请求,请求方式选择POST,地址需要根据你自己兰空图床所部署的IP地址进行更改,我这里演示使用的是http://192.168.1.111:8090/api/v1/tokens,请将http://192.168.1.111:8090替换成你自己兰空图床的部署地址。/api/v1/tokens为生成Token的固定路径不可更改。然后在“Header”中增加一个键值对,键为Accept,值为application/json。
- 添加好Header中的参数后,再去“Body”中的“form-data”中增加两个键值对
键:email,值:{email}
{email}为兰空图床中用户的邮箱,表示你需要使用哪个用户的 API 接口。
键:password,值:{password}
{password}为用户的登录密码。
完成“Body”的参数填写后,直接点击“发送”。
- 如接口参数没有问题,则会返回 Token,我们将此 Token 复制保存下来,后面需要用到。
- 在“PicList”中选择“图床”中的“Lsky”,修改默认配置或新建一个配置。“图床配置名”根据自己的喜好进行命名;“设定版本”根据你安装的兰空图床的版本进行选择;“设定主机”则为兰空图床的部署地址,可以使用域名;“设定Token”填写刚刚使用“Postman”中保存的Token,需要加上Bearer (注意“Bearer”后面有一个空格);“设定策略ID”不填则默认是该用户所属角色的第一个策略,存储策略ID可以在兰空图床后台的“存储策略”中查看;“设定相册ID”可不填;“设定权限”保持默认即可。最后点击“确定”就完成了从PicList上传到Lsky Pro兰空图床的配置。
- 在“PicList”中选择“上传”中选择需要上传到Lsky Pro兰空图床的配置选项,然后点击“图片处理”。
- ①启用“是否移除EXIF信息”;②“压缩质量”推荐70;③启用“是否转换格式”;④“转换目的格式”选择webp;其他配置可以根据自己需求进行选择是否启用,最后点击“保存”即可。
- 别忘了在兰空图床后台,给对应的角色组也设置“图片保存质量”和“图片转换格式”,然后点击“保存”。
- PicList支持多种上传方式,上传到刚设置好的配置即可实现对图片的双重压缩。
通过将图片拖拽到白色虚线框内上传。
通过单击“点击上传”选择图片进行上传。
通过将图片复制到剪贴板,然后点击“剪贴板图片”直接上传。
通过复制图片在线URL地址,点击“URL”输入图片链接地址进行上传。
通过启用PicList服务,使用API进行上传。
- 修改容量
- 更多PicList的使用技巧请参考官方文档 PicList Doc(https://piclist.cn/app.html)
2. 反代设置
Lucky 反代设置
更详细设置:[[Lucky 详细设置]]
3. 进阶:解决外网访问下静态资源加载失败问题
- 问题描述
简单来说就是配置 Lskypro 外网访问的时候会出现无法正常加载 WebUI 的情况,且上传文件可能会有报错。
关于此问题的更具体信息,读者可以点击下面的两个链接去了解:
静态资源加载失败 · Issue #317 · lsky-org/lsky-pro · GitHub
https+域名+端口的访问问题,NginxProxyManager反代 · Issue #607 · lsky-org/lsky-pro · GitHub
- 解决办示
- 修改 Lskypro Docker 参数:
ASSET_URL
填写你的外网访问地址(如果有端口号需要加上端口号),比如: -
打开 unRAID 命令行窗口,复制粘贴以下命令运行:
docker exec -it Lskypro sed -i '32 a \\\Illuminate\\Support\\Facades\\URL::forceScheme('"'"'https'"'"');' /var/www/html/app/Providers/AppServiceProvider.php
命令中的 Lskypro 指的是容器名称,因此如果你的 Lskypro 容器名称有修改,那么需要修改上面的命令(注意,容器名称大小写敏感)。
- 修改反向代理参数(以 NginxProxyManager 为例):将下面的参数添加到 Lskypro 的反向代理配置中(其他参数不需要修改,直接保存即可)。
location / {
proxy_pass $forward_scheme://$server:$port;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Method $request_method;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
proxy_set_header X-Forwarded-Uri $request_uri;
}
三、Picgo Core 设置
1. PicList 安装
依赖:
npm config set sharp_binary_host "https://npmmirror.com/mirrors/sharp"
npm config set sharp_libvips_binary_host "https://npmmirror.com/mirrors/sharp-libvips"
npm install sharp
报错:
- npm error
sharp_binary_host
is not a valid npm option
Node 与 Sharp 版本不兼容
2. picgo 插件
# 一个用于在上传后自动将网址复制到剪贴板的 picgo 插件。
picgo install autocopy
picgo set plugin autocopy
# 水印 https://github.com/fhyoga/picgo-plugin-watermark
picgo install picgo-plugin-watermark
export enum PositionType {
lt = "left-top",
ct = "center-top",
rt = "right-top",
lm = "left-middle",
cm = "center-middle",
rm = "right-middle",
lb = "left-bottom",
cb = "center-bottom",
rb = "right-bottom"
}
# .heic 转换为 jpg
picgo add convert-heic
# 上传图片前移除EXIF数据
picgo install picgo-plugin-remove-exif
picgo add remove-exif
# 图片压缩
# lsky 图床
picgo-plugin-lankong
# 重命名
picgo install picgo-plugin-rename-file
参考
- [ 1 ] Lskypro + PicGO 搭建私有图床和环境 | JackieWu
- [ 2 ]
- [ 3 ]
- [ 4 ]