LskyPro接入ALlist存储

前言

图床是用于存放图片的空间,基于图床可以很方便的实现图片分享,便于日常使用和前端开发。
兰空图床 · Lsky Pro 是一款基于 PHP 开发的开源图床项目,界面美观且易于操作,目前支持本地存储AWS S3阿里云 OSS腾讯云 COS七牛云又拍云SFTPFTPWebDAVMinio 等多类存储服务。

兰空官网https://huohuastudio.com/  (专属邀请码:1314)

部署步骤

注意:在部署开始前你应该拥有一台公网服务器,另外,以下步骤依赖于 Nginx 和 AList,请提前安装相关依赖并配置,本文档只对 LskyPro 图床的搭建步骤和必要的注意事项进行介绍。

仅适用于 Linux amd64/arm64 平台。

自动安装:curl -fsSL "https://alist.nn.ci/v3.sh" -o v3.sh && bash v3.sh

 

手动运行

打开 AList Release 下载待部署系统对应的文件。最新版的前端已经和后端打包好了,不用再下载前端文件了。

# 解压下载的文件,得到可执行文件:
tar -zxvf alist-xxxx.tar.gz
# 授予程序执行权限:
chmod +x alist
# 运行程序
./alist server

# 获得管理员信息 以下两个不同版本,新版本也有随机生成和手动设置
# 低于v3.25.0版本
./alist admin

# 高于v3.25.0版本
# 随机生成一个密码
./alist admin random
# 手动设置一个密码 `NEW_PASSWORD`是指你需要设置的密码
./alist admin set NEW_PASSWORD

守护进程

使用任意方式编辑 /usr/lib/systemd/system/alist.service 并添加如下内容,其中 path_alist 为 AList 所在的路径

[Unit]
Description=alist
After=network.target
 
[Service]
Type=simple
WorkingDirectory=path_alist
ExecStart=path_alist/alist server
Restart=on-failure
 
[Install]
WantedBy=multi-user.target

然后,执行 systemctl daemon-reload 重载配置,现在你可以使用这些命令来管理程序:

  • 启动: systemctl start alist
  • 关闭: systemctl stop alist
  • 配置开机自启: systemctl enable alist
  • 取消开机自启: systemctl disable alist
  • 状态: systemctl status alist
  • 重启: systemctl restart alist

 

配置LskyPro

教程地址

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

 

设置存储策略

登录管理员账户,点击侧边栏的 “存储策略” 进入图片文件存储的相关配置,创建一个新的存储策略。

默认存储策略为本地存储,为了不占用服务器空间,我们这里使用 AList 提供的 WebDAV 服务创建一个新的存储策略,配置项如表所示,其中访问域名即为图片直链对应的域名和路径。

配置项 配置内容 说明
储存策略 WebDAV  
访问域名 https://image.xxxxx.cn/img 记得添加/img 后缀,与 Nginx 配置保持一致
URL Queries   留空,无需填写
连接地址 https://alist.demo.cn/ alist.demo.cn 为 AList 服务访问域名
认证方式 Basic 务必选择 Basic,否则连接失败
路径前缀 /dav/image 与 AList 存储配置保持一致
用户名 ${username} AList WebDAV 用户名(用户需有对image 目录的 WebDAV 读写权限)
密码 ${password} AList WebDAV 密码(用户需有对image 目录的 WebDAV 读写权限)
 

设置 WebDAV 为默认存储策略

WebDAV 存储策略添加后可以将默认本地存储策略删除,防止用户将图片上传至本地服务器。

 

设置反向代理

location ^~ /i/ {
    proxy_pass 您的 Alist 直链目录;  # 无斜杠保留完整URI
    proxy_hide_header Content-Type;
    # 通过 if 设置变量
    set $ct "image/jpeg";  # 默认值
    if ($uri ~* \.png$) {
        set $ct "image/png";
    }
    if ($uri ~* \.gif$) {
        set $ct "image/gif";
    }
    if ($uri ~* \.webp$) {
        set $ct "image/webp";
    }
    add_header Content-Type $ct always;

    proxy_hide_header Content-Disposition;
    add_header Content-Disposition "inline";
    proxy_read_timeout 600s;
    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 Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_http_version 1.1;
    }

注意:Alist不要开启签名

开启会出现401错误,要验证证书,否则无法访问图片地址

设置-全局 签名所有 OFF

部分存储需要开启WEB代理选择本地代理,否则图片会触发下载

© 版权声明
THE END
喜欢就支持一下吧
点赞16 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容