springboot整合Fastdfs
一、利用docker安装fastdfs在搭建fastDFS文件上传下载服务器之前,你需要准备的有一个可连接的linux服务器,并且该linux服务器上已经安装了docker,若还有没安装docker的,先百度自行安装docker。1.在dockerHub中查询需要下载的fastdfs版本,我下载版本如下图所示,下载命令:docker pull delron/fastdfs:latest2.....
一、利用docker安装fastdfs
在搭建fastDFS文件上传下载服务器之前,你需要准备的有一个可连接的linux服务器,并且该linux服务器上已经安装了docker,若还有没安装docker的,先百度自行安装docker。
1.在dockerHub中查询需要下载的fastdfs版本,我下载版本如下图所示,下载命令:docker pull delron/fastdfs:latest
2.下载完成后,查看下载成功的fastdfs镜像,利用docker images命令查看,如图,下载成功
3.执行命令:mkdir -p /data/tracker,该目录用于和tracker服务器进行目录挂载
4.执行命令创建tracker容器:docker run -id --name tracker --restart=always --net host -v /etc/localtime:/etc/localtime -v /data/tracker:/fastdfs/tracker/data season/fastdfs:1.2 tracker
5.执行命令:mkdir -p /data/storage,该目用于录存储上传的文件
6.执行命令创建storage容器:docker run -id --name storage --restart=always --net host -v /etc/localtime:/etc/localtime -v /data/storage:/fastdfs/store_path -e TRACKER_SERVER="49.233.170.221:22122" delron/fastdfs storage
其中49.233.170.221换成自己服务的ip地址(最好是外网能访问的ip地址)
7. 执行命令:dockers ps -a 查看tracker和storage容器启动情况,如下图,表示容器正常启动
8.进入tracker容器中修改client.conf配置文件中tracker_server的ip地址为当前服务器地址ip
①.执行命令docker exec -it tracker bash进入tracker容器中
②.执行命令vi /etc/fdfs/client.conf修改配置文件中的tracker_server为当前服务器ip
③.在tracker容器中创建一个测试文件,执行命令:echo "Hello Fasfdfs!" >index.html
④. 将文件上传到服务器,执行命令:fdfs_upload_file /etc/fdfs/client.conf index.html,返回如下图说明上传成功
9.在别的机器通过浏览器访问http://ip地址:8888/+上传返回值,即可成功访问上传的文件
二、springboot整合Fastdfs
1.创建一个springboot项目,只勾选web模块
2.在pom.xml中导入fastdfs相关的jar包(此处我顺便把swagger整合进去,便于测试)
<!-- Swagger2 核心依赖 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
<!-- 连接fastdfs文件系统 -->
<dependency>
<groupId>net.oschina.zcx7878</groupId>
<artifactId>fastdfs-client-java</artifactId>
<version>1.27.0.0</version>
</dependency>
3.在项目resource包下创建配置文件fdfs_client.conf,其中ip为自己对应服务器的ip地址
connect_timeout=30network_timeout=60charset = UTF-8http.tracker_http_port = 8888http.anti_steal_token = nohttp.secret_key =tracker_server=ip:22122
4.创建FastDFSConfig的配置类:
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.TrackerClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
/**
* fastDFS文件上传的配置
*/
@Configuration
public class FastDFSConfig {
private final Logger log = LoggerFactory.getLogger(this.getClass());
@Value("classpath:fdfs_client.conf")
private Resource ccs;
@Bean
public TrackerClient initClient(){
try{
ClientGlobal.init(ccs.getFilename());
return new TrackerClient();
}catch (Exception e){
log.info("FastDFS创建客户端失败");
return null;
}
}
}
5.创建SwaggerConfig的配置类
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
@Configuration
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.zbl")) //注意修改成自己的包路径,不然扫描不到controller
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("SpringBoot利用Swagger构建API文档")
.description("使用RestFul风格, 创建人:一生有你")
.termsOfServiceUrl("https://github.com/cicadasmile")
.version("version 1.0")
.build();
}
}
6.启动类添加@EnableSwagger2,用于启用swagger注解,默认访问地址:http://localhost:6060/swagger-ui.html#,6060为项目启动端口,默认为8080
7.启动成功,访问界面如下:
8.选择文件上传成功,返回如下所示:
9.浏览器访问图片成功,OK,大功告成:
三、代码参考:目前码云还在完善中,后期添加源码链接
说明:为何会详细讲解fastdfs的安装,因为我作为一个后端开发人员对这些安装不是很熟悉,搞了3个小时才搞定,所以记录详细一点,以便于其余后端开发人员能快速上手,至于docker的安装就自行百度吧。我的服务器用的阿里云的centons7服务器,去年花了2斤猪肉的钱买的,哈哈哈,爽!
更多推荐
所有评论(0)