BaiduNetdisk_golang
BaiduNetdisk_golang copied to clipboard
采用golang从0开始打造百度网盘服务端,包含文件上传下载,不同用户文件隔离,文件的秒传,断点续传,分块上传,离线下载,分布式云存储。
BaiduNetdisk_golang
éç¨golangä»0å¼å§æé ç¾åº¦ç½çæå¡ç«¯ï¼å å«æ件ä¸ä¼ ä¸è½½ï¼ä¸åç¨æ·æ件é离ï¼æ件çç§ä¼ ï¼æç¹ç»ä¼ ï¼ååä¸ä¼ ï¼ç¦»çº¿ä¸è½½ï¼åå¸å¼äºåå¨ã
mysqlæ°æ®åº
- æ件表
create table `tbl_file` (
`id` int(11) NOT NULL auto_increment,
`file_sha1` char(40) NOT NULL default '' COMMENT 'æ件hash',
`file_name` varchar(256) NOT NULL default '' COMMENT 'æ件å',
`file_size` bigint(20) default '0' COMMENT 'æ件大å°',
`file_addr` varchar(1024) NOT NULL default '' COMMENT 'æ件åå¨è·¯å¾',
`create_time` datetime default NOW() COMMENT 'å建æ¥æ',
`update_time` datetime default NOW() COMMENT 'æ´æ°æ¥æ',
`status` tinyint default '1' COMMENT 'ç¶æ(å¯ç¨/ç¦ç¨/å·²å é¤)',
`ext1` int(11) default '0' COMMENT 'å¤ç¨å段1',
`ext2` text COMMENT 'å¤ç¨å段2',
primary key (`id`),
UNIQUE KEY `idx_file_hash` (`file_sha1`),
key `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- ç¨æ·è¡¨
create table `tbl_user` (
`id` int(11) NOT NULL auto_increment,
`user_name` varchar(40) NOT NULL default '' COMMENT 'ç¨æ·å',
`user_pwd` varchar(256) NOT NULL default '' COMMENT 'ç¨æ·å¯ç ',
`email` varchar(60) default '' COMMENT 'é®ç®±',
`phone` varchar(40) default '' COMMENT 'çµè¯å·ç ',
`email_validated` tinyint(1) default 0 COMMENT 'é®ç®±æ¯å¦å·²éªè¯',
`phone_validated` tinyint(1) default 0 COMMENT 'ææºæ¯å¦å·²éªè¯',
`create_time` datetime default NOW() COMMENT 'å建æ¥æ',
`update_time` datetime default NOW() COMMENT 'æ´æ°æ¥æ',
`status` tinyint default '1' COMMENT 'ç¶æ(å¯ç¨/ç¦ç¨/å·²å é¤)',
`profile` text COMMENT 'ç¨æ·å±æ§',
primary key (`id`),
UNIQUE KEY `idx_phone` (`phone`),
key `idx_status` (`status`)
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb4;
- ç¨æ·ä¸æä»¶å ³è表
create table `tbl_user_file` (
`id` int(11) NOT NULL Primary Key auto_increment,
`user_id` int(11) NOT NULL COMMENT 'ç¨æ·id',
`user_name` varchar(40) NOT NULL default '' COMMENT 'ç¨æ·å',
`file_sha1` varchar(64) NOT NULL default '' COMMENT 'æ件hash',
`file_size` bigint(20) default 0 COMMENT 'æ件大å°',
`file_name` varchar(256) NOT NULL default '' COMMENT 'æ件å',
`file_path` varchar(512) NOT NULL default '' COMMENT 'æ件路å¾',
`create_time` datetime default NOW() COMMENT 'å建æ¥æ',
`update_time` datetime default NOW() COMMENT 'æ´æ°æ¥æ',
`status` tinyint default '1' COMMENT 'ç¶æ(å¯ç¨/ç¦ç¨/å·²å é¤)',
`profile` text COMMENT 'ç¨æ·å±æ§',
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
go get 被å¢è§£å³æ¹æ³
## 使ç¨ç¾åº¦ç代çï¼ä»
æ¯ægo moduleç项ç®
go env -w GONOPROXY=\*\*.baidu.com\*\* ## é
ç½®GONOPROXYç¯å¢åé,ææç¾åº¦å
代ç ,ä¸èµ°ä»£ç
go env -w GONOSUMDB=\* ## é
ç½®GONOSUMDB,æä¸æ¯æsumdbç´¢å¼
go env -w GOPROXY=https://goproxy.baidu.com ## é
ç½®GOPROXY,å¯ä»¥ä¸è½½å¢å¤ä»£ç