分享一个功能强大的的免费图床程序-已用于生产环境

  • A+
所属分类:资源分享

上次介绍了一个lsky-pro的免费图床程序,大赞作者的用心,功能作为普通的图床来说比较完善。但是单方面对我来说,毕竟图片资源很宝贵,我是程序搭建在自家,自己的硬盘。所以就怕系统或者硬盘什么时候奔溃,所以就基于lsky程序自己增加了点内容,如果侵犯作者,清联系~

开源地址:

https://github.com/david7207/lsky_mod.git

主要功能:

注:原有的功能已经很强大了,下面的功能只是比较私有的功能,需要的小伙伴自行阅读

  • 大都功能队列化,减少请求时间
  • 自动水印
  • 自动缩略图,静态化,缓存本地,资源可以被CDN cache到,不带参数
  • 本地存储支持分布式备份同时针对腾讯云COS和微软oneDrive增量备份,后续增加Google等
  • 支持定时检测配置的备份数据是否遗漏,则推给队列

使用方式:

1.配置web服务器进行安装

代码拉下来,使用composer安装扩展,无尽的等待。。。依赖安装好了安装程序。

配置服务器就不说了,emmm,正常的thinkphp的程序,需要加一个rewrite,应该都晓得

 

分享一个功能强大的的免费图床程序-已用于生产环境

配置好了以后正常安装就好了。下面是正式的魔改环节~

首先在config目录下修改mod.default.php为mod.php

2.配置自动缩略图和水印

由于一般的缩略图裁剪是资源后面加参数,导致cdn不是很友好的被cache到,所以需要一个真实的图片资源,根据约定的分隔符来区分。

修改或者添加一个location

修改好了是这样的

分享一个功能强大的的免费图床程序-已用于生产环境

修改mod.php

分享一个功能强大的的免费图床程序-已用于生产环境

分别为水印文字,颜色,是否保存,如果不保存的话,每次请求都会裁剪

尺寸你需要看你的网站需要的尺寸,格式为宽高,非法的尺寸不给裁剪

然后可以试着请求下你的图片资源,按照图片资源名,就是你的链接最后的图片名称,然后_下划线作为分隔符,输入宽和高,再加上原有的图片后缀就可以了~

例如:「https://xx.com/upload/year/mm/dd/abffcc6e1f5e7_width_height.png」

width就是缩略图的宽,height就是缩略图的高。实现起来也不难,字符串打散再拼接

2.图片备份和备份检测

此场景严重依赖redis!!!

配置同步目标,目前支持腾讯云COS和oneDrive

打开mod.php

分享一个功能强大的的免费图床程序-已用于生产环境

分为三大块

一个是同步的文件夹,本程序默认在upload文件夹,如果之前有使用其他图床支持添加同步目录,但是都要在public文件夹下!

syncSource是同步源,COS和ONEDRIVE,同时存在则表示两个源都上传同步,因为是异步的,所以建议大家都开下来!

sync字段就是配置同步源了,腾讯云COS很好解释,大家根据注释来写就好了~

onedrive的配置这里说下

没有5T onedrive的同学可以转顶部菜单栏的小商店转转,没库存的话可以找我!

登录portal.office.com后,新建窗口打开portal.azure.com登录进去

点击下图框框的菜单进去

分享一个功能强大的的免费图床程序-已用于生产环境

选择应用注册

新注册一个应用

分享一个功能强大的的免费图床程序-已用于生产环境

名称随意写什么就好了

重定向url写:https://你的域名/callback,无需考虑太多程序实现的

然后管理-API权限中添加file的权限

按照下图的框框,从左到右依次点击

分享一个功能强大的的免费图床程序-已用于生产环境

在委托的权限中找到files,全部勾上就可以了

注意不要应用程序!!!

分享一个功能强大的的免费图床程序-已用于生产环境

现在回到程序中,填写字段缺失的值

authGate值是在应用注册-终结点(地球经纬度形式)-OAuth2.0授权终结点v2

如图所示

分享一个功能强大的的免费图床程序-已用于生产环境

注意

到/oauth2/v2.0结束,后面的token或者authorize什么的不要写

例如:https://login.microsoftonline.com/123456/oauth2/v2.0

callBack就是回调地址,就是刚才应用注册的时候写的回调地址。

形如:https://你的域名/callback

appId和appSecret

分享一个功能强大的的免费图床程序-已用于生产环境

应用注册点进你的应用,在概述就有appid

appId是概述中应用程序客户端Id

分享一个功能强大的的免费图床程序-已用于生产环境

注意不是租户Id奥~

appSecret在证书和密码中创建一个密码就好!

分享一个功能强大的的免费图床程序-已用于生产环境

复制密码到配置文件就好了~

好了,配置结束!

打开你的图床链接,访问https://yourdomain/getAuth,进行登录程序授权

浏览器出现 auth success则表示授权成功,注意打开redis服务,应用认证的密钥是保存在redis里!

然后运行

php think queue

上传一张图片看看,是不是出现

分享一个功能强大的的免费图床程序-已用于生产环境

类似于这样的消息,那么恭喜你基本配置对了

如果需要检测同步的数据的话,可以使用

php think sync

会自动检测本地有多少没有同步的文件去同步!

去onedrive可以看到你的图片

分享一个功能强大的的免费图床程序-已用于生产环境

注意:

php think queue需要一只运行

php think sync可以做个定时任务,每天跑一下就好了,本质上只要上传图片就自动在upload队列中,但是为了防止以外,可以定时同步检测下。

后记:

可能教程不是很全面,有问题的随时下方评论留言~

2019-10-6 更新了onedrive的应用注册和配置获取方式

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: