文件上传+Fastdfs

1、Fastdfs

概念:

  • FastDFS是一套高性能的文件服务器集群,他提供了文件上传、下载等服务。(用他对文件进行统一的处理,一般在微服务中我们把它用来对图片进行统一的处理,他就是一个单独的微服务)

1.1 linux操做系统安装(配置)fastdfs

一般使用 fastdfs都是在linux上进行操做的(相当于在linux上安装fastdfs,然后再把图片上传到fastdfs)

  • 配置Fastdfs(在linux上进行cmd终端,执行以下命令)

1.修改client.conf

vi /etc/fdfs/client.conf -> 把ip修改为当前虚拟机ip

2.修改storage.conf

vi /etc/fdfs/storage.conf -> 把ip修改为当前虚拟机ip

3.启动fastdfs

#注意这里两个都要启动

service fdfs_trackerd start
service fdfs_storaged start

4.查看是否启动成功

netstat -unltp|grep fdfs

5.查看监控信息

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

6.启动Nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

7.关闭防火墙/开放防火墙 80 端口

service iptables stop

或者执行:

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT

/etc/rc.d/init.d/iptables save

注意:网络使用的是桥接模式

8.测试Nginx

在虚拟机里面: curl http://127.0.0.1:80

在宿主机测试:浏览器访问 http://127.0.0.1:80

9.测试上传(上传到fastdfs)

fdfs_test /etc/fdfs/client.conf upload /root/虚拟机里面的图片.jpg

1.2 java代码Hello的简单测试

1、打jar包

  • 手动到网上去下载源码然后将源码打jar包到maven仓库

源码地址:https://github.com/happyfish100/fastdfs-client-java

  • 将这个源码下载完后进入根目录里面然后cmd执行下面的命令,就能自动进行打包

使用maven从源码安装:mvn clean install

2、导包

<dependency>
    <groupId>org.csource</groupId>
    <artifactId>fastdfs-client-java</artifactId>
    <version>1.29-SNAPSHOT</version>
</dependency>

3、添加配置文件fdfs_client.conf ,将其中的服务器地址设置为虚拟机ip.22122(后面的不是端口)
//…
tracker_server=192.168.25.133:22122
//…

 // 1、加载配置文件,配置文件中的内容就是 tracker 服务的地址。
		ClientGlobal.init("D:/maven_work/fastDFS-demo/src/fdfs_client.conf");
		// 2、创建一个 TrackerClient 对象。直接 new 一个。
		TrackerClient trackerClient = new TrackerClient();
		// 3、使用 TrackerClient 对象创建连接,获得一个 TrackerServer 对象。
		TrackerServer trackerServer = trackerClient.getConnection();
		// 4、创建一个 StorageServer 的引用,值为 null
		StorageServer storageServer = null;
		// 5、创建一个 StorageClient 对象,需要两个参数 TrackerServer 对象、StorageServer 的引用
		StorageClient storageClient = new StorageClient(trackerServer, storageServer);
		// 6、使用 StorageClient 对象上传图片。
		//扩展名不带“.”
		String[] strings = storageClient.upload_file("D:/pic/benchi.jpg", "jpg",
				null);
		// 7、返回数组。包含组名和图片的路径。
		for (String string : strings) {
			System.out.println(string);
		}

控制台输出如下结果:

group1
M00/00/00/wKgZhVkMP4KAZEy-AAA-tCf93Fo973.jpg

在浏览器输入:

http://192.168.25.133/group1/M00/00/00/wKgZhVkMP4KAZEy-AAA-tCf93Fo973.jpg

发布了20 篇原创文章 · 获赞 4 · 访问量 2088

猜你喜欢

转载自blog.csdn.net/weixin_45028726/article/details/104579427
今日推荐