go-fastdfs 最简单、可靠、高效的分布式文件系统
install
docker go-fastdfs安装
# search命查找镜像
docker search go-fastdfs
# pull镜像
docker pull go-fasdfs
运行fastdfs
docker run -d -p 8080:8080 sjqzhang/go-fastdfs
参数 | 详情 |
---|---|
d | 后台运行 |
p | 端口映射 |
修改fastdfs配置
修改容器里面的fastdfs配置有2种方法
1. 进入容器里面修改/usr/local/go-fastdfs/data/conf/cfg.json文件
# 获取其container_id
docker ps
# 进入容器
docker exec -it <container_id> bash
# vi修改配置, 自带vi
vi /usr/local/go-fastdfs/data/conf/cfg.json
如果想通过curl访问fastdfs的话,需要在cfg.json里面你添加白名单。使用localhost或127.0.0.1是不行的
"admin_ips": ["127.0.0.1", "172.17.0.1"],
添加172.17.0.1,这是docker的默认地址。
- 如果你的go-fastdfs不是在docker里面的话,不用添加后者也可以在本地访问api
- 如果是在docker里面的话,需要添加172.17.0.1或本机ip
- 如果想让外部ip可以访问的话,添加ip到白名单。
示例
# curl http://127.0.0.1:8080/group1/stat
{
"data": [
{
"date": "20191023",
"fileCount": 1,
"totalSize": 146357
},
{
"date": "all",
"fileCount": 1,
"totalSize": 146357
}
],
"message": "",
"status": "ok"
}
这个api可以查看fastdfs的文件存储信息。
/group1/stat的group1是分组的名称,因为默认配置是分组存储的,如果不想分组,就修改cfg.json的配置
# 不分组
"support_group_manage": false
不分组的话,api命令不需要groupx
curl http://127.0.0.1:8080/stat
修改完配置后,需要reload fastdfs
docker restart <container_id>
这里的restart只会重启容器里面的fastdfs进程
2. 通过api接口修改配置
api的方法修改配置不是很友善,不建议使用。因为只修改单个配置项的话,其他的值会变空
api接口: /reload
/reload接口可以获取cfg配置信息、修改配置、reload配置
参数 | 详情 |
---|---|
action | 执行动作,get/set/reload |
cfg | json格式参数 |
# 查询
curl http://127.0.0.1:8080/group1/reload?action=get
# 修改, 这条命令在命令行运行是报错的,我用postman调用
curl 'http://127.0.0.1:8080/group1/reload?action=set&cfg={"idle_timeout":1}'
# 修改完配置后需要reload生效
curl http://127.0.0.1:8080/group1/reload?action=reload
更多的API: go-fastdfs Api文档
浏览器输入: http://127.0.0.1:8080, 可以打开go-fastdfs的上传文件页面