Skip to content

liwei415/ox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

OX is an image/file/video server, written by pure C.

Required Dependencies

  • libevhtp
  • Centos 7, install ImageMagick with: yum install GraphicsMagick-devel(epel)
  • Centos 7, install libmagic with: yum install file-devel(base)
  • More: yum install gcc lua-devel GraphicsMagick-devel file-devel gcc-c++ libmemcached-devel hiredis-devel ImageMagick-devel

Building

  • cd ox
  • ./rebuild

Run

  1. copy "ox", "conf/ox.lua", "conf/process.lua" to your project dir
  2. config "ox.lua" and "process.lua"
  3. run with "./ox"

Test

  • 图片
  1. 上传:curl -H "Content-Type:jpeg" --data-binary @xx.jpg "http://127.0.0.1:xxx/imgs"
  2. 下载:http://127.0.0.1:xxx/img/(md5)?w=0&h=0&g=0&x=0&y=0&r=0&q=85&f=jpg
  3. 加锁:http://127.0.0.1:xxx/img/lock/(md5)?p=xxxxx
  4. 解锁:http://127.0.0.1:xxx/img/unlock/(md5)?p=xxxxx
  5. 删除:http://127.0.0.1:xxx/img/del/(md5)
  6. 批量加锁:post json数据至http://127.0.0.1:xxx/imgs/lock 数据示例:[{"md5":"(md501)", "passwd":"xxx"},{"md5":"(md502)", "passwd":"xxx"}]
  7. 批量解锁:post json数据至http://127.0.0.1:xxx/imgs/unlock 数据示例:[{"md5":"(md501)", "passwd":"xxx"},{"md5":"(md502)", "passwd":"xxx"}]
  8. 批量删除:post json数据至http://127.0.0.1:xxx/imgs/del 数据示例:[{"md5":"(md501)"},{"md5":"(md502)"}]
  • 文档
  1. 上传: curl -H "Content-Type:text" --data-binary @xx.txt "http://127.0.0.1:xxx/docs"
  2. 下载: http://127.0.0.1:xxx/doc/(md5)?n=xx.txt
  3. 解锁:http://127.0.0.1:xxx/doc/unlock/(md5)?p=xxxxx
  4. 删除:http://127.0.0.1:xxx/doc/del/(md5)
  5. 批量加锁:post json数据至http://127.0.0.1:xxx/docs/lock 数据示例:[{"md5":"(md501)", "passwd":"xxx"},{"md5":"(md502)", "passwd":"xxx"}]
  6. 批量解锁:post json数据至http://127.0.0.1:xxx/docs/unlock 数据示例:[{"md5":"(md501)", "passwd":"xxx"},{"md5":"(md502)", "passwd":"xxx"}]
  7. 批量删除:post json数据至http://127.0.0.1:xxx/docs/del 数据示例:[{"md5":"(md501)"},{"md5":"(md502)"}]
  • 视频
  1. 上传: curl -H "Content-Type:mov" --data-binary @xx.mov "http://127.0.0.1:xxx/movs"
  2. 下载: http://127.0.0.1:xxx/mov/(md5)?n=xx.mov
  3. 解锁:http://127.0.0.1:xxx/mov/unlock/(md5)?p=xxxxx
  4. 删除:http://127.0.0.1:xxx/mov/del/(md5)
  5. 批量加锁:post json数据至http://127.0.0.1:xxx/movs/lock 数据示例:[{"md5":"(md501)", "passwd":"xxx"},{"md5":"(md502)", "passwd":"xxx"}]
  6. 批量解锁:post json数据至http://127.0.0.1:xxx/movs/unlock 数据示例:[{"md5":"(md501)", "passwd":"xxx"},{"md5":"(md502)", "passwd":"xxx"}]
  7. 批量删除:post json数据至http://127.0.0.1:xxx/movs/del 数据示例:[{"md5":"(md501)"},{"md5":"(md502)"}]

TODO

  • post多个资源实现

Log

+++++++++++++++++++++++++++++++++20160617 更新日志++++++++++++++++++++++++++++++++++++++

  • doc lock没生成lock文件
  • doc get入参passwd获得
  • 修复了上传文件类型出错没有在日志打印清楚的bug

+++++++++++++++++++++++++++++++++20160612 更新日志++++++++++++++++++++++++++++++++++++++

  • 批量lock内存泄露bug
  • lock unlock失败返回信息不准确

+++++++++++++++++++++++++++++++++20160606 更新日志++++++++++++++++++++++++++++++++++++++

  • bugfix cJSON_Delete();

+++++++++++++++++++++++++++++++++20160603 更新日志++++++++++++++++++++++++++++++++++++++

  • 批量删除功能添加
  • 批量加锁功能添加
  • 批量解锁功能添加
  • 批量加锁解锁passwd参数最大接收字符调整为32位
  • 下载查看功能添加http头支持jsonp跨域访问

+++++++++++++++++++++++++++++++++20160526 更新日志++++++++++++++++++++++++++++++++++++++

  • 修复加锁时文档,视频判断lock存在的问题
  • 测试通过

+++++++++++++++++++++++++++++++++20160525 更新日志++++++++++++++++++++++++++++++++++++++

  • 获得资源get处处理锁逻辑
  • 解锁unlock逻辑实现

+++++++++++++++++++++++++++++++++20160524 更新日志++++++++++++++++++++++++++++++++++++++

  • 增加资源加锁操作接口(get,每次对单个资源处理)
  • 在获得资源接口(get处)处理锁逻辑
  • 重新设计api:
    • delete在一些地方使用不友好,故delete做为二级资源定位出现:/img/del
    • post接收数组参数处理多个资源
    • post的url全部复数形式
    • lock/unlock暂时方在资源后面二级出现。比如/img/lock或者/img/unlock
  • cbs重新设计,单个功能独立function

+++++++++++++++++++++++++++++++++20160523 更新日志++++++++++++++++++++++++++++++++++++++

  • 增加资源的删除操作接口(get,每次对单个资源处理)
  • 新增ox_cbs_img.c,ox_cbs_img.h文件调整代码结构
  • 新增ox_cbs_doc.c,ox_cbs_doc.h文件调整代码结构
  • 新增ox_cbs_mov.c,ox_cbs_mov.h文件调整代码结构
  • 修复一个疑似内存泄露bug(无free)

About

A high performance file server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages