介绍

Lsky Pro 是一个用于在线上传、管理图片的图床程序,中文名:兰空图床,你可以将它作为自己的云上相册,亦可以当作你的写作贴图库。
兰空图床始于 2017 年 10 月,最早的版本由 ThinkPHP 5 开发,后又经历了数个版本的迭代,在 2021 年末启动了新的重写计划并于 2022 年 3 月份发布全新的 2.0 版本。

特性

  • 支持本地等多种第三方云储存 AWS S3阿里云 OSS腾讯云 COS七牛云又拍云SFTPFTPWebDavMinio
  • 多种数据库驱动支持,MySQL 5.7+PostgreSQL 9.6+SQLite 3.8.8+SQL Server 2017+
  • 支持配置使用多种缓存驱动,MemcachedRedisDynamoDB、等其他关系型数据库,默认以文件的方式缓存
  • 多图上传、拖拽上传、粘贴上传、动态设置策略上传、复制、一键复制链接
  • 强大的图片管理功能,瀑布流展示,支持鼠标右键、单选多选、重命名等操作
  • 自由度极高的角色组配置,可以为每个组配置多个储存策略,同时储存策略可以配置多个角色组
  • 可针对角色组设置上传文件、文件夹路径命名规则、上传频率限制、图片审核等功能
  • 支持图片水印、文字水印、水印平铺、设置水印位置、X/y 轴偏移量设置、旋转角度等
  • 支持通过接口上传、管理图片、管理相册
  • 支持在线增量更新、跨版本更新
  • 图片广场

线上交流

安装要求

  • PHP >= 8.0.2
  • BCMath PHP 扩展
  • Ctype PHP 扩展
  • DOM PHP 拓展
  • Fileinfo PHP 扩展
  • JSON PHP 扩展
  • Mbstring PHP 扩展
  • OpenSSL PHP 扩展
  • PDO PHP 扩展
  • Tokenizer PHP 扩展
  • XML PHP 扩展
  • Imagick 拓展
  • exec、shell_exec 函数
  • readlink、symlink 函数
  • putenv、getenv 函数

支持的数据库

  • Mysql 5.7+
  • PostgreSQL 9.6+
  • SQLite 3.8.8+
  • SQL Server 2017+

捐赠

Lsky Pro 的开发和更新等,都是作者在业余时间独立开发,并免费开源使用,如果您认可我的作品,并且觉得对你有所帮助我愿意接受来自各方面的捐赠😃。

支付宝微信
支付宝微信

反馈问题

  • 若你在使用过程中遇到了匪夷所思的问题,第一步请先确认该问题是如何导致的,尝试自行检查解决
  • 如果你觉得可能遇到了错误,认为该错误是程序的 bug,你可以前往 https://github.com/lsky-org/lsky-pro/issuesopen in new window 进行反馈
  • 如果程序出现了崩溃级别的异常,例如 500 错误,通常情况下程序会在 storage/logs 目录下生成错误日志,出现这种情况反馈时请将日志文件携带(注意,日志中可能存在敏感信息)
  • 不接受任何无厘头的提议、例如:
    • 能不能支持上传图片至 github、gitee、jsdelivr 等
    • 能不能支持上传 mp4、avi 等视频
  • 当你准备向他人提问时,你应该先准备好你的问题,描述清楚你的场景。建议阅读 提问的智慧open in new window

升级指南

由于 2.x 版本与 1.x 存在巨大差异,且数据库结构层面变化较大,无法从旧版本直接升级至 2.x 版本,但是作者我用了亿点时间写了迁移脚本,尽管如此,从旧版本迁移还是一个比较繁琐的步骤。

迁移之前你需要知道的事

  1. 迁移脚本只会将你的旧版本的数据库数据迁移至新版本,如果你的旧版本使用的是本地储存,你需要自己移动物理文件。
  2. 新版本需要图片的尺寸数据,在迁移过程中需要获取图片信息,如果你的数据量较大,迁移可能需要很久,取决于你的网络以及服务器的网络。
  3. 脚本会迁移旧版本的角色组、策略配置、用户、图片数据,迁移后的角色组和储存策略无任何关联关系。
  4. 如果你使用的是本地储存策略,迁移后的图片,所有已迁移的图片访问 url 需要在域名后面加上 i 字母前缀。
  5. 迁移成功后的用户处于未验证状态,账号的密码为 用户名+邮箱地址 的组合。
  6. 脚本需要使用 php8 cli (命令行)模式下运行。

准备工作

  1. 先安装全新的 2.0 版本,安装成功后不要进行任何操作
  2. 保证旧版本只有一个管理员账号
  3. 需要将旧版本中的所有用到的储存策略配置填上访问域名,保证该储存策略的图片能正常通过该域名访问
  4. 如果使用第三方储存,需要关闭防盗链等一切访问限制,避免图像尺寸获取失败

迁移脚本配置

下载迁移脚本open in new window ,将脚本解压至已安装 php8 运行环境的服务器的任意文件夹下,然后编辑脚本根目录下的 config.yaml 配置文件,将该文件中的旧版本数据库、新版本数据库配置填写完整。

同时请保证运行脚本的环境可以同时连接到这两个不同的数据库。

开始迁移

迁移过程中,建议关闭旧版本网站。

使用 ssh 工具登录到服务器,cd 到脚本根目录(与 start.php 文件同级)
然后执行迁移命令 php start.php migrate

当命令窗口出现进度条时,表示正在迁移图片数据,如果你的图片量很多,那么等待的时间可能很久,过程中请不要关闭窗口、断网。

后续操作

当进度条走完以后,则数据迁移完成,旧版本的管理员账号将会被新版本安装时设置的管理员账号所代替,请使用安装时设置的管理员账号登录新版本网站。

迁移完成后组的配置都是系统默认值,旧版本中设置的配置需要在新版本中重新设置。

如果旧版本使用的是本地图片,需要将旧版本 public 目录下的图片文件,复制到新版本中的 storage/app/uploads 目录下。