Skip to content

Commit

Permalink
add unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
sjqzhang committed Feb 21, 2019
1 parent 1cb2627 commit a2a95f4
Show file tree
Hide file tree
Showing 15 changed files with 875 additions and 94 deletions.
27 changes: 26 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

# go-fastdfs是一个基于http协议的分布式文件系统,它基于大道至简的设计理念,一切从简设计,使得它的运维及扩展变得更加简单,它具有高性能、高可靠、无中心、免维护等优点。

### 大家担心的是这么简单的文件系统,靠不靠谱,可不可以用于生产环境?答案是肯定的,正因为简单所以稳定。如果你担心功能,那就跑单元测试,如果担心性能,那就跑压力测试,项目都自带了,跑一跑更放心^_^。
### 大家担心的是这么简单的文件系统,靠不靠谱,可不可以用于生产环境?答案是肯定的,正因为简单所以高效,因为简单所以稳定。如果你担心功能,那就跑单元测试,如果担心性能,那就跑压力测试,项目都自带了,跑一跑更放心^_^。


- 支持curl命令上传
Expand Down Expand Up @@ -44,6 +44,7 @@
- 支持集群监控邮件告警
- 支持小文件自动合并(减少inode占用)
- 支持秒传
- 低资源开销
- 支持断点续传([tus](https://tus.io/))
- 支持docker部署
- 支持token下载 token=md5(file_md5+timestamp)
Expand Down Expand Up @@ -324,6 +325,29 @@ sts["Fs.ErrorSetSize"] = this.errorset.Cardinality() 这个会导致内存增

```
- 如何编译?
```
git clone https://github.com/sjqzhang/go-fastdfs.git
cd go-fastdfs
mv vendor src
pwd=`pwd`
GOPATH=$pwd go build -o fileserver fileserver.go
```
- 如何跑单元测试 (尽量在linux下进行)?
```

git clone https://github.com/sjqzhang/go-fastdfs.git
cd go-fastdfs
mv vendor src
pwd=`pwd`
GOPATH=$pwd go test -v fileserver.go fileserver_test.go

```
- 如何压测?
```
先用gen_file.py产生大量文件(注意如果要生成大文件,自已在内容中乘上一个大的数即可)
Expand Down Expand Up @@ -412,6 +436,7 @@ issue中chengyuansen同学向我提议使用增加扩容特性,我觉得对代

```
- 访问限制问题
```
出于安全考虑,管理API只能在群集内部调用或者用127.0.0.1调用.
Expand Down
3 changes: 2 additions & 1 deletion fileserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"github.com/sjqzhang/tusd"
"github.com/sjqzhang/tusd/filestore"
"github.com/syndtr/goleveldb/leveldb"
_ "github.com/eventials/go-tus"
"io"
"io/ioutil"
slog "log"
Expand Down Expand Up @@ -137,7 +138,7 @@ const (
"组号": "用于区别不同的集群(上传或下载)与support_group_upload配合使用,带在下载路径中",
"group": "group1",
"是否合并小文件": "默认不合并,合并可以解决inode不够用的情况(当前对于小于1M文件)进行合并",
"enable_merge_small_file": true,
"enable_merge_small_file": false,
"重试同步失败文件的时间": "单位秒",
"refresh_interval": 1800,
"是否自动重命名": "默认不自动重命名,使用原文件名",
Expand Down
Loading

0 comments on commit a2a95f4

Please sign in to comment.