使用docker安装fastDFS

1|01.安装fastdfs必要组件 tracker  什么都不用改

docker run -d --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker

2|02.安装fastdfs存储地址 storage 除了ip其他的都不用改

docker run -d --network=host --name storage -e TRACKER_SERVER=你服务器自己的ip:22122 -v /var/fdfs/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage

3|03.进入容器修改配置  一定要,要不然链接不上

docker exec -it tracker bash

4|04.修改配置

vi /etc/fdfs/client.conf

将配置 tracker_server=你自己的ip:22122

到这其实fastDFS就配好了

5|0创建项目测试

我这里用的是**springBoot**进行整合。**swagger-ui**进行图片上传

5|11.pom依赖

1 <!-- FastDFS依赖 --> 2 <dependency> 3 <groupId>com.github.tobato</groupId> 4 <artifactId>fastdfs-client</artifactId> 5 <version>1.26.5</version> 6 </dependency> 7 <!-- Swagger2 核心依赖 --> 8 <dependency> 9 <groupId>io.springfox</groupId> 10 <artifactId>springfox-swagger2</artifactId> 11 <version>2.6.1</version> 12 </dependency> 13 <dependency> 14 <groupId>io.springfox</groupId> 15 <artifactId>springfox-swagger-ui</artifactId> 16 <version>2.6.1</version> 17 </dependency>

5|22.配置 yml **需要修改ip**

1 spring: 2 servlet: 3 multipart: 4 max-file-size: 100MB # 最大支持文件大小 5 max-request-size: 100MB # 最大支持请求大小 6 # 分布式文件系统FDFS配置 7 fdfs: 8 # 链接超时 9 connect-timeout: 600 10 # 读取时间 11 so-timeout: 600 12 # 生成缩略图参数 13 thumb-image: 14 width: 150 15 height: 150 16 tracker-list: 你自己的ip:22122

5|33.配置文件(两个)

1|0SwaggerConfig.java   **一定要改成你自己项目的controller包路径,这里会扫描你的接口**

1 @Configuration 2 public class SwaggerConfig { 3 @Bean 4 public Docket createRestApi() { 5 return new Docket(DocumentationType.SWAGGER_2) 6 .apiInfo(apiInfo()) 7 .select() 8 .apis(RequestHandlerSelectors.basePackage("top.mail.email.controller")) 9 .paths(PathSelectors.any()) 10 .build(); 11 } 12 private ApiInfo apiInfo() { 13 return new ApiInfoBuilder() 14 .title("SpringBoot利用Swagger构建API文档") 15 .description("使用RestFul风格, 创建人:知了一笑") 16 .termsOfServiceUrl("https://github.com/cicadasmile") 17 .version("version 1.0") 18 .build(); 19 } 20 }

1|0DfsConfig.java

1 @Configuration 2 @Import(FdfsClientConfig.class) 3 // Jmx重复注册bean的问题 4 @EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING) 5 public class DfsConfig { 6 }

5|44.工具类

1|0FileDfsUtil.java

1 @Component 2 public class FileDfsUtil { 3 private static final Logger LOGGER = LoggerFactory.getLogger(FileDfsUtil.class); 4 @Resource 5 private FastFileStorageClient storageClient ; 6 /** 7 * 上传文件 8 */ 9 public String upload(MultipartFile file) throws Exception{ 10 StorePath storePath = storageClient.uploadFile(file.getInputStream(),file.getSize(), FilenameUtils.getExtension(file.getOriginalFilename()),null); 11 return storePath.getFullPath() ; 12 } 13 /** 14 * 删除文件 15 */ 16 public void deleteFile(String fileUrl) { 17 if (StringUtils.isEmpty(fileUrl)) { 18 LOGGER.info("fileUrl == >>文件路径为空..."); 19 return; 20 } 21 try { 22 StorePath storePath = StorePath.parseFromUrl(fileUrl); 23 storageClient.deleteFile(storePath.getGroup(), storePath.getPath()); 24 } catch (Exception e) { 25 LOGGER.info(e.getMessage()); 26 } 27 } 28 }

5|55.controller接口

1|0FileController.java

1 @RestController 2 public class FileController { 3 @Resource 4 private FileDfsUtil fileDfsUtil ; 5 /** 6 * 文件上传 7 */ 8 @ApiOperation(value="上传文件", notes="测试FastDFS文件上传") 9 @RequestMapping(value = "/uploadFile",headers="content-type=multipart/form-data", method = RequestMethod.POST) 10 public ResponseEntity<String> uploadFile (@RequestParam("file") MultipartFile file){ 11 String result ; 12 try{ 13 String path = fileDfsUtil.upload(file) ; 14 if (!StringUtils.isEmpty(path)){ 15 result = path ; 16 } else { 17 result = "上传失败" ; 18 } 19 } catch (Exception e){ 20 e.printStackTrace() ; 21 result = "服务异常" ; 22 } 23 return ResponseEntity.ok(result); 24 } 25 /** 26 * 文件删除 27 */ 28 @RequestMapping(value = "/deleteByPath", method = RequestMethod.GET) 29 public ResponseEntity<String> deleteByPath (){ 30 String filePathName = "group1/M00/00/00/wKhIgl0n4AKABxQEABhlMYw_3Lo825.png" ; 31 fileDfsUtil.deleteFile(filePathName); 32 return ResponseEntity.ok("SUCCESS") ; 33 } 34 }

5|66.springBoot启动类

1 @SpringBootApplication 2 @EnableSwagger2 3 public class EmailApplication { 4 5 public static void main(String[] args) { 6 SpringApplication.run(EmailApplication.class, args); 7 } 8 9 }

6|0启动项目

访问::::

http://localhost:8080/swagger-ui.html

 

 返回地址表示上传成功。

 

7|0怎么访问呢?

默认的话,是通过你的  ip:8888/上面返回的地址    如果你是阿里云服务就要手动开放 8888、22122、23000 这三个端口

 


__EOF__

本文作者yangzhuxian Love wzy
本文链接https://www.cnblogs.com/yangzhuxian/p/13879035.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   yangzhuxian  阅读(4671)  评论(10编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示