写在前面
“图床”是用于存放图片的空间,基于图床可以快捷地实现图片分享,便于日常使用和前端开发。
(资料图)
Lsky Pro(兰空图床) 是一款基于 PHP 开发的开源图床项目,界面美观且易于操作,目前支持
本地存储
、AWS S3
、阿里云 OSS
、腾讯云 COS
、七牛云
、又拍云
、SFTP
、FTP
、WebDAV
、Minio
等多类存储服务。Lsky Pro 的优势在于其支持
WebDAV
协议,因此我们可以使用 AList 绑定个人网盘(如阿里云盘、百度网盘、天翼云盘、夸克网盘等),将 AList 提供的WebDAV
服务作为图床的存储策略,进而充分利用云盘空间,通过图床将图片托管到个人网盘。
注意:一个良好的图床服务应当与 CDN 搭配以实现更快的加载速度,本文搭建的图床仅作为个人使用的图片托管平台。
LskyPro 兰空图床官方文档:https://docs.lsky.pro
AList 官方文档:https://alist.nn.ci
注意:在部署开始前你应该拥有一台公网服务器,另外,以下步骤依赖于 Docker、Nginx 和 AList,请提前安装相关依赖并配置,本文档只对 LskyPro 图床的搭建步骤和必要的注意事项进行介绍。
Step1. 配置 AList WebDAV 服务
在个人网盘中创建 lskypro-image
文件夹,这里以天翼云盘为例,并在 AList 中将该文件夹挂载到路径 /image
,如下图所示:
以上步骤完成后,访问 DAV
链接并通过身份校验后,即可进行图片的上传与访问。假设 AList 绑定的公网域名为 alist.domain.name.cn
,则图片存储服务的 DAV
链接为:https://alist.domain.name.cn/dav/image
。
Step2. 启动 LskyPro 图床容器服务
LskyPro 图床服务依赖于多个PHP插件,为了方便部署,我们采用 Docker 的方式安装 ,命令如下:
Step3. 修改 Nginx 配置项
注意,如果在 Nginx 配置中开启了 HTTPS ,需要执行以下命令修改图床项目源码,否则前端页面布局将被打乱:
假设图床服务的域名为 image.domain.name.cn
,AList 部署在本地端口 4015
,在 nginx.conf
中添加如下配置项:
Nginx 配置说明
上传至图床的图片应该是可公开访问的,但 AList 提供的 WebDAV 服务需要身份验证,为此我们在以上 Nginx 配置中增加了 “转发 AList 图片访问请求” 配置项,其目的是通过添加 Basic Auth 请求头使 Nginx 替代客户端完成 AList WebDAV 身份验证。经过以上配置,客户端通过访问 https://image.domain.name.cn/img/${img_path}
即可直接获取图片,无需进行身份验证。
Basic Auth 请求头内容设置
若 AList WebDAV 的用户名和密码为 username 和 password,则${base64} 处填入 "username:password" 的 base64 编码,即:proxy_set_header Authorization "Basic dXNlcm5hbWU6cGFzc3dvcmQ=";
P.S. Base 64 在线编码转换工具:https://www.ibase64.com
Step4. 配置 LskyPro 图床
A. 数据库配置
以上步骤完成后,浏览器访问图床服务(https://image.domain.name.cn)可进入如下图所示的配置页面。配置页面将引导我们设置数据库服务,为了减轻工作量,我们直接使用本地 SQLite 数据库,数据库路径留空即可(将自动在服务根目录的 database
目录下创建 database.sqlite
文件),同时需要设定管理员邮箱和登录密码。
配置完成后根据引导进入图床首页。
B. 设置存储策略
登录管理员账户,点击侧边栏的 “存储策略” 进入图片文件存储的相关配置,创建一个新的存储策略。
默认存储策略为本地存储,为了不占用服务器空间,我们这里使用 AList 提供的 WebDAV 服务创建一个新的存储策略,配置项如表所示,其中访问域名即为图片直链对应的域名和路径。
注意:记得选中角色组,否则存储策略不会生效。
C. 设置 WebDAV 为默认存储策略
WebDAV 存储策略添加后可以将默认本地存储策略删除,防止用户将图片上传至本地服务器。
吐槽一下小破站的专栏功能,不支持 Markdown 太不人性化了,一篇文章调格式调了很久...
X 关闭
Copyright © 2015-2022 华东机械网版权所有 备案号:京ICP备2022016840号-41 联系邮箱:2 913 236 @qq.com