项目简介
本项目是基于C语言和ulfius框架构建的嵌入式RESTful API系统,实现了一个可管理用户信息并处理气象卫星数据的简单HTTP服务器。借助ulfius框架处理HTTP请求与响应,通过SystemD管理服务生命周期。该系统具备用户管理和文件下载功能,适用于嵌入式系统的远程访问和管理。
项目的主要特性和功能
- 用户管理:可通过HTTP POST请求创建新用户,支持用户SSH登录;也能通过HTTP GET请求获取所有用户信息。
- 文件下载服务:提供气象卫星数据下载功能,支持从AWS S3服务下载文件。若文件已存在,返回现有文件下载链接;若不存在,后台下载后返回链接。
- 日志记录:所有用户操作和文件下载请求会记录到日志,日志格式为:
<Timestamp> | <Nombre Del Servicio> | <Mensaje>
。 - 安全性:使用Nginx作为反向代理处理HTTP请求并进行用户认证,所有请求需用户名和密码认证。
- 服务管理:使用SystemD管理服务的启动、停止、重启和自动启动。
安装使用步骤
环境准备
确保系统安装了GCC编译器、make工具、SystemD和Nginx,同时安装ulfius框架及其依赖库。
编译项目
使用提供的Makefile进行编译:
sh
make
配置服务
将生成的SystemD服务文件复制到/etc/systemd/system/
目录下,配置Nginx反向代理,确保请求能正确转发到相应服务。
启动服务
启动SystemD服务:
sh
sudo systemctl start user_service
sudo systemctl start download_service
设置服务开机自启动:
sh
sudo systemctl enable user_service
sudo systemctl enable download_service
测试API
使用curl
或Postman等工具测试API端点,示例如下:
- 创建用户:
sh
curl --request POST \
--url http://localhost/api/users \
-u USER:SECRET \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{"username": "myuser", "password": "mypassword"}'
- 获取用户列表:
sh
curl --request GET \
--url http://localhost/api/users \
-u USER:SECRET \
--header 'accept: application/json' \
--header 'content-type: application/json'
- 下载气象数据:
sh
curl --request POST \
--url http://localhost/api/servers/get_goes \
-u USER:SECRET \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{"product": "OR_ABI-L2-MCMIPF", "datetime": "Y%m%d%h"}'
查看日志
日志文件位于/var/log/
目录下,可通过以下命令查看:
sh
cat /var/log/user_service.log
cat /var/log/download_service.log
注意事项
- 本项目仅使用HTTP协议,存在安全隐患,建议在生产环境中使用HTTPS。
- 确保在运行服务前拥有足够的权限,并根据实际情况调整配置文件。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】