飞道软件工厂

插件式开发

文件服务

概述

文件服务用来存储系统的文件数据,文件的上传和下载都要使用文件服务

配置

连接参数配置

{
	"max_file_size": 53687091200,
	"minio": {
		"endPoint": "127.0.0.1",
		"port": 9000,
		"accessKey": "mmstudio",
		"secretKey": "Mmstudio123",
		"useSSL": false,
		"region": "cn-north-1",
		"partSize": 5242880
	}
}

docker

services:
  minio:
    image: minio/minio
    container_name: minio
    command: server /data
    volumes:
      - /home/feidao/data/minio:/data
    ports:
      - 9000:9000
    environment:
      MINIO_ACCESS_KEY: mmstudio
      MINIO_SECRET_KEY: Mmstudio123

调用示例

上传文件服务的示例代码参见p000020

下载文件服务的示例代码参见p00020

下载文件时,使用上传返回的id拼接即可,如上传了一个文件,返回信息为:

[{"contentType":"image/png","id":"7606b4fa-3067-40d7-8cf0-e55920e975a3","md5":"af201af68a97517930f4f538df66f04c-1","name":"Screenshot from 2020-04-27 14-39-05.png"}]

那么使用 http://localhost:3000/api/s002?id=7606b4fa-3067-40d7-8cf0-e55920e975a3就可以访问这个文件

上传文件的复杂处理

有一些情况,我们需要将文件进行一些处理才能保存进对象存储库中,比如需要将视频转换为mp4格式,再比如需要将上传的图片添加水印,可以模仿视频转换的原子操作自行处理。如果有具体需求,也可以封装成为公共原子操作以供所有项目使用。

这里学徒提倡一下开源思想,有些果人可能会认为我好不容易封装了一个原子操作,别人使用可能就窃取了我的劳动成果,其实没有那么严重,只有大家人人贡献,开源的道路才会更广阔,我们才可以站在巨人的肩膀上,技术不会成为你成功的阻碍,你自己的思想才会是。