前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用docker安装fastDFS

使用docker安装fastDFS

作者头像
用户8200753
发布2023-10-22 14:59:05
4412
发布2023-10-22 14:59:05
举报
文章被收录于专栏:小豪成长日记

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

代码语言:javascript
复制
docker run -d --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker

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

代码语言:javascript
复制
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.进入容器修改配置  一定要,要不然链接不上

代码语言:javascript
复制
docker exec -it tracker bash

4.修改配置

代码语言:javascript
复制
vi /etc/fdfs/client.conf

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

到这其实fastDFS就配好了

创建项目测试

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

1.pom依赖

代码语言:javascript
复制
 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>

2.配置 yml **需要修改ip**

代码语言:javascript
复制
 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

3.配置文件(两个)

SwaggerConfig.java   **一定要改成你自己项目的controller包路径,这里会扫描你的接口**
代码语言:javascript
复制
 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 }
DfsConfig.java
代码语言:javascript
复制
1 @Configuration
2 @Import(FdfsClientConfig.class)
3 // Jmx重复注册bean的问题
4 @EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)
5 public class DfsConfig {
6 }

4.工具类

FileDfsUtil.java
代码语言:javascript
复制
 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.controller接口

FileController.java
代码语言:javascript
复制
 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 }

6.springBoot启动类

代码语言:javascript
复制
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 }

启动项目

访问::::

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

 返回地址表示上传成功。

怎么访问呢?

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.安装fastdfs必要组件 tracker  什么都不用改
  • 2.安装fastdfs存储地址 storage 除了ip其他的都不用改
  • 3.进入容器修改配置  一定要,要不然链接不上
  • 4.修改配置
  • 创建项目测试
    • 1.pom依赖
      • 2.配置 yml **需要修改ip**
        • 3.配置文件(两个)
          • SwaggerConfig.java   **一定要改成你自己项目的controller包路径,这里会扫描你的接口**
          • DfsConfig.java
        • 4.工具类
          • FileDfsUtil.java
        • 5.controller接口
          • FileController.java
        • 6.springBoot启动类
        • 启动项目
        • 怎么访问呢?
        相关产品与服务
        容器镜像服务
        容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档