Docker安装FastDFS步骤:

1.安装:

#拉取镜像 docker pull delron/fastdfs

#创建tracker容器 docker run -d --network=host --restart always --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker

#创建storage容器 docker run -d --network=host --restart always --name storage -e TRACKER_SERVER=192.168.31.81:22122 -v /var/fdfs/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage

#进入storage容器,到storage的配置文件中配置http访问的端口,配置文件在/etc/fdfs目录下的storage.conf。 docker exec -it storage /bin/bash

#默认的http端口为8888,可以修改也可以配置 # the port of the web server on this storage server http.server_port=8888

#配置nginx,在/usr/local/nginx目录下,修改nginx.conf文件 #默认配置如下:

server { listen 8888; server_name localhost; location ~/group[0-9]/ { ngx_fastdfs_module; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }

#默认的存储路径为/var/fdfs/data

2.FastDFS环境搭建(java client使用)

server项目导入依赖:

<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.properties配置:

# =================================================================== # # =================================================================== fdfs.so-timeout = 1501 fdfs.connect-timeout = 601

fdfs.thumb-image.width= 150 fdfs.thumb-image.height= 150

fdfs.tracker-list=192.168.56.11:22122

spring.servlet.multipart.max-file-size=30MB spring.servlet.multipart.max-request-size=30MB

3.测试

package com.tanhua.server;

import com.github.tobato.fastdfs.domain.fdfs.StorePath; import com.github.tobato.fastdfs.service.FastFileStorageClient; 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 public class TestFastDFS {

@Autowired protected FastFileStorageClient storageClient;

@Test public void testUpload(){ String path = "C:\Users\zhijun\Desktop\pics\1.jpg"; File file = new File(path);

try { StorePath storePath = this.storageClient.uploadFile(FileUtils.openInputStream(file), file.length(), "jpg", null);

System.out.println(storePath); //StorePath [group=group1, path=M00/00/00/wKgfUV2GJSuAOUd_AAHnjh7KpOc1.1.jpg] System.out.println(storePath.getFullPath());//group1/M00/00/00/wKgfUV2GJSuAOUd_AAHnjh7KpOc1.1.jpg } catch (IOException e) { e.printStackTrace(); } } }

经验分享 程序员 微信小程序 职场和发展