c apache2模块开发--根据自定义业务逻辑实现文件下载

本文介绍了如何根据特定业务逻辑,使用C语言开发Apache2模块来处理文件下载请求。通过从URL中提取文件ID,调用内部接口获取文件,并根据URL参数进行处理,最后以HTTP响应发送文件给请求者。由于需求简单,仅用GET方法,且受限于环境,选择了C/C++作为开发语言。
摘要由CSDN通过智能技术生成

1.需求概述 

    最近和公司其他项目平台对接,有这样一个需求:提供一个HTTP Server,从URL中解析出文件ID等信息,然后调用我方项目开发的接口,从我方平台中下载这个文件,根据URL中的参数再对其做一些简单处理,然后再将文件以HTTP方式发送给对方平台。由于只用到一个查询接口,get即可满足,因此不用rest库。且受限于软硬件条件,不用java,需使用c/c++开发。


2.总体思路:
        使用apache2搭建http server,然后开发一个模块处理http请求,在该模块中解析URL、调用我方平台接口下载文件、对文件做二次处理、封装http响应报文,将请求返回给客户端。


3.apache2 模块开发
       关于apache2的安装,这里不做赘述,请自行百度。
       apache2 模块开发步骤,网上资料也比较多,请主要参考 《 将 Apache httpd 作为应用开发平台》。
       简单的说,就是通过apache2提供的apxs工具,生成一套框架代码、Makefile以及部署脚本,然后基于该框架代码进一步添加自己的业务逻辑:
       1) apxs -g -n mymodule   生成模块代码框架( mymodule 是自己的模块名): apache2会生成名为 mod_mymodule的目录,其中包含 mod_mymodule.c以及Makefile等文件
       2) 修改 mod_mymodule.c ,添加自己的业务逻辑(稍后再详细介绍)
       3) apxs -i -c -a  mod_mymodule.c   会将so文件释放到apache2的lib目录,例如:
          /usr/lib64/httpd/modules
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值