对标Discuz!开源SNS系统Fresns上线
Fresns是一款免费开源的社交网络服务软件专为跨平台而打造的通用型社区产品,支持灵活多样的内容形态,可以满足多种运营场景,符合时代潮流,更开放且更易于二次开发。
主程序的设计像是一个脚手架、一个框架,为扩展程序打好坚固可靠的基础,只含有身为社区不可或缺的基本 API 功能,其余扩展功能则由插件提供;插件作为一个独立功能模块,从系统设计和业务封装的角度,采用的是「命令字」作为通讯模式,即一个插件模块包括多个命令字,外部通过命令字方式来调用插件的功能。对开发者来讲,形式简洁,容易开发;对系统通讯来讲,插件通讯模式简洁,通过类似 RPC 模式来调用即可。这种软件设计思想,从后续的框架扩展来看,单体框架可以支撑多插件,同时后续也能支撑多系统多插件模式,并能以微服务的模式实现系统之间的分布式调用。
Fresns 模型结构
模型结构是这一次耗时的最重要原因,因为是开源产品,为了开发者更好的参与,也为了使用者更稳定的运行,所以深思熟虑之后,我还是决定重构模型结构和代码规范。
重新梳理后的主程序,插件开发者可以更方便地开发插件。对于主要数据集已经封装好了 Models,对于常用的辅助功能封装成了 Helpers,常用的业务功能封装成了 Utilities,而对于跨业务跨语言的业务功能封装成了 Command Word 命令字(未来的 RPC 的基础)。这些封装都有详细的文档在官网供查阅,插件开发者可以直接调用,减少开发量。
针对客户端开发者,这一次 API 完全遵循 RESTful 标准,结构清晰、符合标准、易于理解、扩展方便。
Fresns 中国版官网 fresns.cn 通过官网可以找到安装方法与支持;
Fresns 国际版官网 fresns.org
如果用Fresns做一些社区论坛,当做一个系统,是一个不错的选择,同时,Fresns的作者还在不断的迭代更新,增加对小程序的支持;
介绍如何使用ImageX作为静态托管和加速图片加载的:本文已经假设,你已经安装好了 Fresns,然后再启用veImageX托管(之前已经做过对比测试,相比于其他七牛、腾讯等,图像压缩算法应该是国内做好的,因此能够更节省一点成本,加载速度也会更快);
开通服务
-
访问火山引擎官网 https://www.volcengine.com/products/imagex 注册并登录账号
-
实名认证 https://console.volcengine.com/user/authentication/detail/
-
进入火山引擎控制台 https://console.volcengine.com/imagex/
安装与配置
-
给 Fresns 安装火山引擎 veImageX 插件
-
下载插件压缩包:https://github.com/ExerciseBook/fresns-imagex/releases
-
将压缩包下载后,上传安装如图所示:
-
Fresns 后台 -> 应用中心 -> 安装应用
-
启用应用
-
-
配置 ImageX
-
系统 -> 存储设置
-
填写配置
-
设置组 | 设置 | 含义 |
---|---|---|
存储配置 | 存储服务商 | 选择 `ImageX Integration` |
| | Secret ID | 从 [VolcEngine IAM](https://console.volcengine.com/iam/keymanage/) 获取到的 access key ID |
| | Secret Key | 从 [VolcEngine IAM](https://console.volcengine.com/iam/keymanage/) 获取到的 access access key |
| | 存储配置名称 | 从 [VolcEngine ImageX](https://console.volcengine.com/imagex/service_manage/) 获取到的 Service ID |
| | 存储配置地域 | 从 [VolcEngine ImageX](https://console.volcengine.com/imagex/service_manage/) 获取到的服务区域 (1) |
| | 存储配置域名 | 在 [VolcEngine ImageX](https://console.volcengine.com/imagex/service_manage/) 设置的域名 |
| | 文件系统磁盘 | 选择 \`remote\` |
| 功能配置 | 防盗链 Key | 地址鉴权密钥 (2) |
| | 防盗链签名有效期 | 请让这个值比你在 防盗链 Key 页面中设置的值小 |
| 图片处理功能配置 | 图片处理位置 | 选择后缀模式 |
| | 其他空 | 以 \`~tplv~\` 开头,以 文件扩展名 结尾的模板 |
| 视频处理功能配置 | 还没做完 | 还没做完 |
| 音频处理功能配置 | \- | 不支持,ImageX 不提供任何音频处理功能 |
| 在线预览配置 | \- | 支持,ImageX 可以存任何你喜欢的文件 |
(1) 大概率是 `cn-north-1`、`ap-singapore-1`、`us-east-1` 三选一
(2) 设置界面 `https://console.volcengine.com/imagex/service_manage/http_config/{服务编号}/{域名}`, :`https://console.volcengine.com/imagex/service_manage/http_config/dQw4w9WgXcQ/example.com`。本插件仅支持鉴权方式 B。
如图示:
- 设置完毕后就可以正常发图啦
最后,使用火山引擎 imagex 加速网站飞起来吧~
文章为原创文章,若有侵权请联系;