赞
踩
提示:以下是本篇文章正文内容,下面案例可供参考
Tracker server(追踪调度服务器)
Tracker server(追踪调度服务器),作⽤是负载均衡和调度,通过 Tracker server 在⽂件上传时可以根据⼀些策略找到Storage server 提供⽂件上传服务,所以将 tracker server称为追踪服务器或调度服务器。
Storage server(文件存储服务器)
Storage server(文件存储服务器) 作⽤是⽂件存储,客户端上传的⽂件最终存储在 Storage 服务器上,Storage server 没有实现⾃⼰的⽂件系统⽽是利⽤操作系统的⽂件系统来管理⽂件,所以将storage称为存储服务器。
Group(组)
docker pull delron/fastdfs
提示:在指定虚拟机镜像之后,还需要添加tracker命令,这样镜像就会根据tracker命令启动tracker服务
docker run -d --name tracker --net=host -p 22122:22122 delron/fastdfs tracker
–net=host : 将虚拟机的网络应用于容器,也就是说和宿主机网络一致
提示:在指定虚拟机镜像之后,还需要添加storager命令,这样镜像就会根据storage命令启动storage服务
docker run -d --name storage --net=host -p 8888:8888 -p 23000:23000 -e TRACKER_SERVER=192.168.136.160:22122 -e GROUP_NAME=group1 delron/fastdfs storage
- GROUP_NAME=group1 : 指定服务器在组group1中或者新增一个组叫group1,如果想要增加新的组用于扩容 ,再次运行该命令,更换新组名即可。
- –net=host : 将虚拟机的网络应用于容器,也就是说和宿主机网络一致
storage内部已经集成了nginx,这里的nginx可以使图片在浏览器中访问到
提示:进入Storage容器内【cd /etc/fdfs/ 】也有Storage和Tracker的配置
docker exec -it storage /bin/bash
vi /usr/local/nginx/conf/nginx.conf
3. 如果i进行了配置修改 则需要重启
docker restart storage
<!--fastdfs文件存储-->
<dependency>
<groupId>com.github.tobato</groupId>
<artifactId>fastdfs-client</artifactId>
<version>1.26.7</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
在【application.yml】添加配置
fdfs:
so-timeout: 1500 #读取超时时间
connect-timeout: 600 #连接超时时间
thumb-image: #缩略图参数
width: 150
height: 150
tracker-list: 192.168.136.160:22122 #tracker服务器地址 可配置多个
web-server-url: http://192.168.136.160:8888 #访问路径 storage中nginx地址
import com.github.tobato.fastdfs.domain.conn.FdfsWebServer; import com.github.tobato.fastdfs.domain.fdfs.StorePath; import com.github.tobato.fastdfs.service.FastFileStorageClient; import com.tanhua.server.AppServerApplication; import org.apache.commons.io.FileUtils; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.io.File; import java.io.IOException; @RunWith(SpringRunner.class) @SpringBootTest(classes = AppServerApplication.class) public class FastDFSTest { @Autowired protected FastFileStorageClient storageClient; @Autowired private FdfsWebServer fdfsWebServer; @Test public void testUpload() { String path = "D:\\IMAGE\\2e8e06bd-bfe3-4af3-9540-83eb20982656.jpg"; File file = new File(path); try { //上传图片 StorePath storePath = this.storageClient.uploadFile(FileUtils.openInputStream(file), file.length(), "jpg", null); //拼接路径 可通过该路径访问上传的照片 http://192.168.136.160:8888/group1/M00/00/00/wKiIoGMB7PmAUPZZAAHMYGEwMhg147.jpg String url = fdfsWebServer.getWebServerUrl() + "/" + storePath.getFullPath(); System.out.println(url); } catch (IOException e) { e.printStackTrace(); } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。