##简介 七牛云存储服务的一大亮点就是支持数据的处理,目前支持常规的图片,音视频及其他的一些文件处理方式。但是有的时候,在客户需要一些特定功能的数据处理时,就需要用到七牛提供的**用户自定义数据处理(ufop)**功能。
ufop的特点是客户自行提供对七牛空间中的文件的处理程序,然后通过七牛提供的ufop工具来进行管理。该程序只需要符合七牛ufop的规范即可。
具体可以参考官方文档:
该项目是根据客户需要的常见的数据处理功能,使用Go语言实现的自定义数据处理功能。该项目集成了多个ufop的功能,并且可以编译为统一的ufop处理程序。客户只需要根据七牛的ufop管理工具来创建ufop实例即可快速使用。
##结构
该项目是七牛ufop常见功能的参考实现。其中的每个功能都是独立的,可拆除的。如果你只需要其中的某一个功能的代码,可以很方便地删除其他不需要的功能组件。
如果你需要添加新的功能,也可以通过简单的修改来实现。主要是在qufop.go
文件中注册服务或者解除注册服务,另外ufop
目录下面添加或者删除功能目录。
该项目可以直接编译为符合七牛ufop规范的可执行文件,然后配合qufop.conf
配置文件来运行。该配置文件中除了所有的ufop功能所需要的共同的配置,还包括每一个ufop功能所需要的单独的配置项目。在创建不同的ufop实例的时候,客户只需要提供所有ufop功能所需要的共同配置信息和某ufop功能所需要的指定的配置信息即可。可以参考示例配置
所有ufop所需要的共同的配置信息
参数名 | 值 | 描述 |
---|---|---|
listen_port | 9100 | 固定为9100,不可以改动 |
listen_host | 0.0.0.0 | 固定为0.0.0.0 ,不可以改动 |
read_timeout | <自定义> | http请求的读取超时时间,单位:秒,默认1800s |
write_timeout | <自定义> | http请求的回复超时时间,单位:秒,默认1800s |
max_header_bytes | <自定义> | http请求的头部大小,单位:字节,默认65535字节 |
ufop_prefix | <自定义> | ufop服务的前缀,因为该项目集成了很多ufop功能,而根据七牛的ufop规范,每一个ufop实例的名称必须不同,所以通过统一的前缀来避免ufop名称重复 |
备注:每个ufop实例所需要的单独的配置信息在每个ufop功能的文档中介绍。
ufop功能和ufop实例的联系和区别
- ufop功能指的是该项目中实现的自定义数据处理功能,比如mkzip,unzip等。
- ufop实例指的是通过七牛的ufop管理工具注册的自定义数据处理功能,该功能的名称是
前缀+ufop功能名称
,比如前缀是qn-
,那么对于mkzip
功能,它对应的实例名称就是qn-mkzip
,在使用pfop
接口等数据处理API时,使用的是ufop实例名称
,即qn-mkzip
。 - 因为
ufop实例
的名称必须是唯一的,如果大家使用同一个功能的ufop
,加上各自独有的前缀可以标识自己的ufop实例
并且能够保证实例名称的唯一性。
##功能 目前该项目实现的ufop功能如下:
名称 | 描述 | 文档 |
---|---|---|
mkzip | 实现了支持utf8和gbk两种编码方式的文件打包功能,可以解决Windows下使用系统自带解压工具解压zip出现的文件中文名称乱码问题。 | 详细 |
unzip | 实现了文件上传七牛空间,再解压缩功能,可以用于小文件打包上传,提高上传速度。 | 详细 |
amerge | 实现了两个音频文件的混音功能。 | 详细 |
html2pdf | 实现html文档到pdf的转换功能 | 详细 |
html2image | 实现html文档到image的转换功能 | 详细 |
imagecomp | 实现了图片按照九宫格的方式进行拼接的功能 | 详细 |
roundpic | 实现了图片的圆角处理功能 | 详细 |
PS: 以上功能的所有参考配置都在deploy目录下面,可以参照文档和参考配置来使用。
##反馈
- 您可以通过创建issue的方式提交您的问题。
- 如果您需要帮助,可以联系QQ:2037014430,加前注明来意,非技术问题勿扰。