2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Nginx集成FastDFS模块实现图片上传

Nginx集成FastDFS模块实现图片上传

时间:2023-08-04 01:23:49

相关推荐

Nginx集成FastDFS模块实现图片上传

提示:如果在这里还没有安装Fastdfs的话可以参考:censtos下安装FastDFS

一、FastDFS的Nginx模块

资料: /s/14YQCvuMIRMj_JuSyJyfezg提取码:jg46

解压:

tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

配置config文件:

# 进入配置目录cd /home/upload/fdfs/fastdfs-nginx-module/src/# 修改配置vim config# 执行下面命令(将配置中的/usr/local改为/usr)::%s+/usr/local/+/usr/+g

配置mod_fastdfs.conf

# 将src目录下的mod_fastdfs.conf复制到 /etc/fdfs目录:cp mod_fastdfs.conf /etc/fdfs/# 编辑该文件vim /etc/fdfs/mod_fastdfs.conf

修改配置:

connect_timeout=5 # 客户端访问文件连接超时时长(单位:秒)tracker_server=192.168.161.146:22122 # tracker服务IP和端口url_have_group_name=true # 访问链接前缀加上组名store_path0=/upload/fdfs/storage # 文件存储路径

复制 FastDFS的部分配置文件到/etc/fdfs目录

cd /home/upload/fdfs/FastDFS/conf/cp http.conf mime.types /etc/fdfs/

二、安装Nginx

解压

tar -zxvf nginx-1.14.2.tar.gz#然后cd nginx-1.14.2

配置

sudo ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/home/upload/fdfs/fastdfs-nginx-module/src

然后编译安装

make && make install

配置nginx整合fastdfs-module模块

我们需要修改nginx配置文件,在/opt/nginx/config/nginx.conf文件中:

vim /opt/nginx/conf/nginx.conf

将文件中,原来的server 80{ ...}部分代码替换为如下代码:

server {listen 80;#这个可以去c盘 \Windows\System32\drivers\etc 下的hosts进行配置 server_name ; # 监听域名中带有group的,交给FastDFS模块处理location ~/group([0-9])/ {ngx_fastdfs_module;}location / {root html;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}

然后启动nginx:

nginx # 启动nginx -s stop # 停止nginx -s reload # 重新加载配置

如果出现如图所示:说明配置成功:

3、创建项目实现图片上传、

3.1:引入对应依赖:这里使用一个开源的FastDFS客户端

地址:/tobato/FastDFS_Client

maven配置:

<!--SpringBoot依赖--><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version><relativePath /><!--fastdfs-client依赖--><dependency><groupId>com.github.tobato</groupId><artifactId>fastdfs-client</artifactId><version>1.26.5</version></dependency><!--测试--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>2.0.0.RELEASE</version></dependency>

3.2、将FastDFS-Client客户端引入本地化项目的方式非常简单,在SpringBoot项目/src/[com.xxx.主目录]/conf当引入配置类 如下:

@Configuration@Import(FdfsClientConfig.class)// 解决jmx重复注册bean的问题@EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)public class FastClientImporter {}

3.3 在resoures 下的application.yml 编写FastDfs属性:

fdfs:so-timeout: 1501 #请求超时时间connect-timeout: 601 #连接超时时间thumb-image: # 缩略图 大小设置width: 80height: 80tracker-list: # tracker地址- 192.168.161.147:22122

3.4、编写测试类

/**** @author acer* @create /1/15* @since 1.0.0*/@RunWith(SpringRunner.class)@SpringBootTestpublic class FdfsTest {@Autowiredprivate FastFileStorageClient storageClient;@Autowiredprivate ThumbImageConfig thumbImageConfig;@Testpublic void testUploadAndCreateThumb() throws FileNotFoundException {File file = new File("E:\\mm.png");// 上传并且生成缩略图StorePath storePath = this.storageClient.uploadImageAndCrtThumbImage(new FileInputStream(file), file.length(), "png", null);// 带分组的路径System.out.println(storePath.getFullPath());// 不带分组的路径System.out.println(storePath.getPath());// 获取缩略图路径String path = thumbImageConfig.getThumbImagePath(storePath.getPath());System.out.println(path);}}

3.5、测试结果 如图:

3.6、启动nginx 进行访问地址 :/group1/M00/00/00/wKihk1w9646AKaNVABF8ik-Os-M715.png

测试缩略图:访问/group1/M00/00/00/wKihk1w9646AKaNVABF8ik-Os-M715_80x80.png

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。