//====================登陆用户
127.0.0.1:80/login
post数据(json)
{
user:xxxx,
pwd:xxx
}
//====================注册用户
127.0.0.1:80/reg
post数据(json)
{
userName:xxxx,
nickName:xxx,
firstPwd:xxx,
phone:xxx,
email:xxx
}
在“我的文件”界面,会显示所有署遇用户的文件列表
127.0.0.1:80/myfiles?cmd=count //获取用户文件个数
post数据json包如下:
{
"user": "yoyo"
}
//获取用户文件信息 127.0.0.1:80/myfiles&cmd=normal
//按下载量升序 127.0.0.1:80/myfiles?cmd=pvasc
//按下载量降序127.0.0.1:80/myfiles?cmd=pvdesc
post数据json包如下:
//start文件位置的起点,count文件的数量,则需要显示0~9位置为文件
{
"user": "yoyo"
"start": 0 //start指的是在从第几个文件开始
"count": 10
}
{
"files":
[
{
"user": "yoyo",
"md5": "e8ea6031b779ac26c319ddf949ad9d8d",
"time": "2017-02-26 21:35:25",
"filename": "test.mp4",
"share_status": 0,
"pv": 0,
"url": "http://192.168.31.109:80/group1/M00/00/00/wKgfbViy2Z2AJ-FTAaM3As-g3Z0782.mp4",
"size": 27473666,
"type": "mp4"
},
{
"user": "yoyo",
"md5": "e8ea6031b779ac26c319ddf949ad9d8d",
"time": "2017-02-26 21:35:25",
"filename": "test.mp4",
"share_status": 0,
"pv": 0,
"url": "http://192.168.31.109:80/group1/M00/00/00/wKgfbViy2Z2AJ-FTAaM3As-g3Z0782.mp4",
"size": 27473666,
"type": "mp4"
}
]
}
/*
{
"user": "yoyo",
"md5": "e8ea6031b779ac26c319ddf949ad9d8d",
"time": "2017-02-26 21:35:25",
"filename": "test.mp4",
"share_status": 0,
"pv": 0,
"url": "http://192.168.31.109:80/group1/M00/00/00/wKgfbViy2Z2AJ-FTAaM3As-g3Z0782.mp4",
"size": 27473666,
"type": "mp4"
}
*/
//-- user 文件所属用户
//-- md5 文件md5
//-- createtime 文件创建时间
//-- filename 文件名字
//-- shared_status 共享状态, 0为没有共享, 1为共享
//-- pv 文件下载量,默认值为0,下载一次加1
//-- url 文件url
//-- size 文件大小, 以字节为单位
//-- type 文件类型: png, zip, mp4……
127.0.0.1:80/md5
post数据(json)
{
user:xxxx,
md5:xxx,
fileName: xxx
}
127.0.0.1:80/upload
post数据如下:
------WebKitFormBoundary88asdgewtgewx\r\n
Content-Disposition: form-data; user="mike"; filename="xxx.jpg"; md5="xxxx"; size=10240\r\n
Content-Type: application/octet-stream\r\n
\r\n
真正的文件内容\r\n
------WebKitFormBoundary88asdgewtgewx
在Qt界面点击“共享列表”,会显示所有当前共享的文件,注意共享的文件其信息是存在MySQL中单独的一张表中,
//获取用户文件个数 127.0.0.1:80/sharefiles?cmd=count
//按下载量升序 127.0.0.1:80/sharefiles?cmd=pvasc
//按下载量降序127.0.0.1:80/sharefiles?cmd=pvdesc
post数据json包如下:
//start文件位置的起点,count文件的数量,则需要显示0~9位置为文件
{
"start": 0,
"count": 10
}
{
"filename": "test.mp4",
"pv": 0
}
//下载文件pv字段处理
//127.0.0.1:80/dealsharefile?cmd=pv
//取消分享文件
//127.0.0.1:80/dealsharefile?cmd=cancel
//转存文件
//127.0.0.1:80/dealsharefile?cmd=save
127.0.0.1:80/dealfile?cmd=share
post数据json包如下:
{
"user": "xxx",
"token": "xxx",
"md5": "xxx",
"filename": "xxx"
}
//删除文件
127.0.0.1:80/dealfile?cmd=del
post数据json包如下:
{
"user": "yoyo",
"token": "xxx",
"md5": "xxx",
"filename": "xxx"
}
//下载文件pv字段处理
127.0.0.1:80/dealfile?cmd=pv
post数据json包如下:
{
"user": "yoyo",
"md5": "xxx",
"filename": "xxx"
}
创建数据库名为“dfs”
create database dfs;
use dfs;
用户信息表
id:用户序号,自动递增,主键
name:用户名字
nickname:用户昵称
phone:手机号码
email:邮箱
createtime:时间
create table user
( id bigint not null primary key AUTO_INCREMENT,
name VARCHAR(128) not null,
nickname VARCHAR(128) not null,
password VARCHAR(128) not null,
phone VARCHAR(15) not null,
createtime VARCHAR(128),
email VARCHAR(100),
constraint uq_nickname unique(nickname), constraint uq_name unique(name)
);
文件信息表
md5 文件md5-
file_id 文件id
url 文件url
size 文件大小, 以字节为单位
type 文件类型: png, zip, mp4……
count 文件引用计数, 默认为1, 每增加一个用户拥有此文件,此计数器+1
create table file_info
(
md5 varchar(200) not null primary key,
file_id varchar(256) not null,
url varchar(512) not null,
size bigint,
type VARCHAR(20),
count int
);
一个用户对应多个文件,而一个文件同样可以对应多个文件,所以select一个user适可以查到多条结果的,但是每条结果的文件MD5是不同的代表不同文件,也即返回一个结果集
用户文件列表
user 文件所属用户
md5 文件md5
createtime 文件创建时间
filename 文件名字
shared_status 共享状态, 0为没有共享, 1为共享
pv 文件下载量,默认值为0,下载一次加1
create table user_file_list
(
user varchar(128) not null,
md5 varchar(200) not null,
createtime VARCHAR(128),
filename varchar(128),
shared_status int,
pv int
);
用户文件数量表
user 文件所属用户
count 拥有文件的数量(要区分开file_info中的count字段)
create table user_file_count
(
user varchar(128) not null primary key,
count int
);
共享文件列表,代表用户在自己的文件列表选择共享的文件,这个列表里一个用户可能有多个共享了的文件
共享文件列表
user 文件所属用户
md5 文件md5
createtime 文件共享时间
filename 文件名字
pv 文件下载量,默认值为1,下载一次加1
create table share_file_list
(
user varchar(128) not null,
md5 varchar(200) not null,
createtime VARCHAR(128),
filename varchar(128),
pv int
);
Key为FILE_NAME_HASH,fileid作为field,value值是filename
Key为FILE_PUBLIC_ZSET,score为pv,value为